CAF/GIT Find7 bringup - Omni Q&A

@Entropy512
I hope u dont mind asking me a few questions in here about ur GIT and CAF merges, i follow u daily but i simply lost overview atm as im still not 100% familiar with CAF. Ur descriptions are really nice, but i cant follow them anymore. I dont want to fork ur repo, because the learning curve would drop to zero if i would do.
Ok first of all i look here for the right release. This would be of course in case of FIND 7 -> LNX.LA.3.2.5-02310-8x74.0 all good so far. Then i simply clone me the this tree. I have now correct caf tree for comparing it with the official find 7 Kernel by OPPO. Ok so far no problems... i diff or meld them together.
First thing i dont understand is why u started at 19th_Dec. Is there a sepcific reason why u did this ?? U apply oppo changes on top top of them, ok i get this, but why from 19th ?? I synced the kernel with yesterdays date and would start from here, but im sure u have ur reasons why... im more then interessted
And where i lost overview:
U created a new branch with 3.5 tag, as far as i understand this is because u will bring the changes up to KK because the LNX.LA.3.2.5-02310-8x74.0 is JB. But why then the oppo_kernel branch anyway, why havent u started with AU_LINUX_ANDROID_KK_3.5.04.04.02.003.298.
Dont get me wrong, i dont want to annoy anyone, i just want to understand how this works and why.. i hope u can shed some light in here, I would really highly appreciate it Thanks in advance

n3ocort3x said:
@Entropy512
I hope u dont mind asking me a few questions in here about ur GIT and CAF merges, i follow u daily but i simply lost overview atm as im still not 100% familiar with CAF. Ur descriptions are really nice, but i cant follow them anymore. I dont want to fork ur repo, because the learning curve would drop to zero if i would do.
Ok first of all i look here for the right release. This would be of course in case of FIND 7 -> LNX.LA.3.2.5-02310-8x74.0 all good so far. Then i simply clone me the this tree. I have now correct caf tree for comparing it with the official find 7 Kernel by OPPO. Ok so far no problems... i diff or meld them together.
First thing i dont understand is why u started at 19th_Dec. Is there a sepcific reason why u did this ?? U apply oppo changes on top top of them, ok i get this, but why from 19th ?? I synced the kernel with yesterdays date and would start from here, but im sure u have ur reasons why... im more then interessted
And where i lost overview:
U created a new branch with 3.5 tag, as far as i understand this is because u will bring the changes up to KK because the LNX.LA.3.2.5-02310-8x74.0 is JB. But why then the oppo_kernel branch anyway, why havent u started with AU_LINUX_ANDROID_KK_3.5.04.04.02.003.298.
Dont get me wrong, i dont want to annoy anyone, i just want to understand how this works and why.. i hope u can shed some light in here, I would really highly appreciate it Thanks in advance
Click to expand...
Click to collapse
Let me pitch in here
That specific CAF tag was the starting point for the source that Oppo used for their kernel base. So using that clean source he can compare to Oppo modified source.

kristofpetho said:
Let me pitch in here
That specific CAF tag was the starting point for the source that Oppo used for their kernel base. So using that clean source he can compare to Oppo modified source.
Click to expand...
Click to collapse
- Starting point: LNX.LA.3.2.5-02310-8x74.0 all clear
- but why reseting it to Dec.19th and merge in changes from oppo kernel that was released in april ?
- and why then jumping into KK AU_LINUX_ANDROID_KK_3.5.04.04.02.003.298 ?? and apply changes again ??
thats what i dont get... im sure its a brain bug on my side but whats the benefit of merging first into JB and then jump onto KK ? is it just it merges nicer if u first apply it on JB ?

n3ocort3x said:
- Starting point: LNX.LA.3.2.5-02310-8x74.0 all clear
- but why reseting it to Dec.19th and merge in changes from oppo kernel that was released in april ?
- and why then jumping into KK AU_LINUX_ANDROID_KK_3.5.04.04.02.003.298 ?? and apply changes again ??
thats what i dont get... im sure its a brain bug on my side but whats the benefit of merging first into JB and then jump onto KK ? is it just it merges nicer if u first apply it on JB ?
Click to expand...
Click to collapse
Dec. 19th is the CAF tag Oppo started from.
I set up directories something like this:
gitrepos/f7kernel which had Oppo's original source
gitrepos/msm which had a cloned repo of CAF's kernel/msm
gitrepos/checktag.sh as below:
Code:
#!/bin/bash
git reset --hard HEAD
git clean -f -d
git checkout $1
cp -R ../f7kernel/* .
git diff >../$1.patch
Then I started checking CAF tags from https://www.codeaurora.org/xwiki/bin/QAEP/release that matched msm8974 (the chip in the find7) and 04.03.00 (the Android revision that Oppo's firmware was released with - just as a warning, SOMETIMES an OEM can use a CAF tag from an older Android release. This was common with the Google Play Edition devices - most of them were released with 4.4 but were using 4.3 CAF tags for hardware support)
The smallest diff resulting from above was the tag with the closest match, which is LNX.LA.3.2.5-02310-8x74.0 (Meaning Oppo took a CAF baseline on Dec. 19, and started their work on bringing up the Find 7a from there, finishing in April. It's typical to see CAF tags 3-6 months earlier than a kernel source release.)
If you check out tag LNX.LA.3.2.5-02310-8x74.0, the most recent commit will be Dec. 19
Then I started splitting up the differences between that TAG and Oppo's sources. The process is something along the lines of
Code:
git reset HEAD^ directory/to/split/out
git commit --amend
git add directory/to/split/out
git commit
Then use git rebase -i to put the "big" patch as the most recent one in order to keep carving chunks off of it
That gets you the nice diffchunked oppo_kernel branch - in that phase I'm not merging, I'm splitting
From there, I took each patch, reviewed it, and determined if I even wanted to apply the changes. In most cases I did, but I didn't pull in Oppo's filesystem changes
Then I applied each patch on top of AU_LINUX_ANDROID_KK_3.5.04.04.02.003.298 , which is Qualcomm's latest tag on the kk_3.5 branch, which seems to be their "standard" tree for MSM8974 and MSM8226 devices (Qualcomm branching strategy can sometimes be really confusing...) Some applied cleanly, others needed significant manual effort to merge them properly.
End result: Oppo Find 7a device-specific support applied on top of Qualcomm's latest KitKat CAF tag

Entropy512 said:
Dec. 19th is the CAF tag Oppo started from.
I set up directories something like this:
gitrepos/f7kernel which had Oppo's original source
gitrepos/msm which had a cloned repo of CAF's kernel/msm
gitrepos/checktag.sh as below:
Code:
#!/bin/bash
git reset --hard HEAD
git clean -f -d
git checkout $1
cp -R ../f7kernel/* .
git diff >../$1.patch
Then I started checking CAF tags from https://www.codeaurora.org/xwiki/bin/QAEP/release that matched msm8974 (the chip in the find7) and 04.03.00 (the Android revision that Oppo's firmware was released with - just as a warning, SOMETIMES an OEM can use a CAF tag from an older Android release. This was common with the Google Play Edition devices - most of them were released with 4.4 but were using 4.3 CAF tags for hardware support)
The smallest diff resulting from above was the tag with the closest match, which is LNX.LA.3.2.5-02310-8x74.0 (Meaning Oppo took a CAF baseline on Dec. 19, and started their work on bringing up the Find 7a from there, finishing in April. It's typical to see CAF tags 3-6 months earlier than a kernel source release.)
If you check out tag LNX.LA.3.2.5-02310-8x74.0, the most recent commit will be Dec. 19
Then I started splitting up the differences between that TAG and Oppo's sources. The process is something along the lines of
Code:
git reset HEAD^ directory/to/split/out
git commit --amend
git add directory/to/split/out
git commit
Then use git rebase -i to put the "big" patch as the most recent one in order to keep carving chunks off of it
That gets you the nice diffchunked oppo_kernel branch - in that phase I'm not merging, I'm splitting
From there, I took each patch, reviewed it, and determined if I even wanted to apply the changes. In most cases I did, but I didn't pull in Oppo's filesystem changes
Then I applied each patch on top of AU_LINUX_ANDROID_KK_3.5.04.04.02.003.298 , which is Qualcomm's latest tag on the kk_3.5 branch, which seems to be their "standard" tree for MSM8974 and MSM8226 devices (Qualcomm branching strategy can sometimes be really confusing...) Some applied cleanly, others needed significant manual effort to merge them properly.
End result: Oppo Find 7a device-specific support applied on top of Qualcomm's latest KitKat CAF tag
Click to expand...
Click to collapse
man i cant thank u enough for this aweseome description many many thanks. that helped me a lot

Related

[Devs] Looking for a kernel base to work with? Start here.

Hello!
I'm hoping to get custom kernel & rom development up and running quickly for the G5 community, and have created a git repository which provides a kernel source base to start with.
What I've done is taken the v10a release sources and modified them to work with build directories and multiple variants. (should they be unlocked or receive the CodeFire treatment at any time)
Here's where to start: https://github.com/jcadduono/nethunter_kernel_g5/tree/stock-6.0
If you'd like a somewhat updated kernel, the stock-6.0.y branch will be patched from Linux 3.18.y branch at kernel.org, see:
https://github.com/jcadduono/nethunter_kernel_g5/tree/stock-6.0.y
Different from the absolute stock defconfigs, I've made the following changes:
Module signature verification disabled
Unnecessary debugging flags separated into debug_defconfig (use EXTRA_DEFCONFIG=debug_defconfig to enable them)
Flags that were previous set to module (=m) have been set to =y (built-in) in case incompatibilities are unable to load stock modules
Each known variant & target is listed in build.sh comments. The default variant when building with ./build.sh is h850 with debugging disabled.
When using the Makefile, VARIANT_DEFCONFIG=variant_xxx_defconfig adds the additional settings per variant to the target defconfig. (by default stock_defconfig)
build.sh is set up to automatically build a dtb.img after creating the kernel Image.gz based on whichever variant you've built for.
You can use ./menuconfig.sh to modify the stock defconfig, or you can copy the stock_defconfig to another name such as my_defconfig and use TARGET=my ./menuconfig or TARGET=my ./build.sh
It's easier to just set the default target in build.sh/menuconfig.sh - each have their configuration options near the top of the files.
Be sure to edit the config variables in build.sh and menuconfig.sh before using. The VERSION file gets appended to the kernel version shown in `uname` when using build.sh.
The toolchain must be pointed to the correct location before it can build. Be sure to have libncurses5-dev and colordiff packages installed for menuconfig.sh.
For a toolchain, I recommend using the GCC Linaro aarch64 5.3 2016.02 release. You can use basically any aarch64 toolchain though.
Download here: https://releases.linaro.org/compone...o-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz
You can start by forking my repository on GitHub and giving it your own name if you like. Extra interesting commits are available in the other branches that you should be able to cherry-pick without issues should you be interested in them.
Looking to test your kernel Image.gz + dtb.img?
Look no further than my LazyFlasher repository!
See here: https://github.com/jcadduono/lazyflasher/tree/kernel-flasher
Simply do:
Code:
git clone -b kernel-flasher https://github.com/jcadduono/lazyflasher.git kernel-flasher
cd kernel-flasher
cp /path/to/Image.gz /path/to/dtb.img ./
make
(simply place your kernel Image.gz (optional) and dtb.img (optional) in the root of the repository and type make!)
And you'll have your own dynamic kernel flashing zip for custom recoveries!
The kernel-flasher repository is capable of great things. You can create scripts in patch.d to do anything you like.
Add files to the ramdisk-patch folder and create a script that copies them into the $ramdisk folder and they will be rebuilt into the ramdisk!
By default, no-verity-opt-encrypt is there as an example.
Using setprop in patch.d scripts allows you to set props in default.prop with ease.
Add functions to patch.d-env to make them globally usable across patch.d scripts.
See other branches for more examples, like how to add f2fs lines to the fstab, or patch for system mode SuperSU.
LazyFlasher is the installer used in the Kali NetHunter project. You can also find more examples in the kali-nethunter GitHub!
Good luck, and happy kernel developing!
Thanks so much for posting this.
Code:
./obligatoryn00bstatement
Sorry for not being too knowledgeable here (yet?) and if this sort of comment doesn't belong.
I am a Computer Science major who really wants to learn some skills to hopefully give back to the community.
Is this an area that I could be of use or should I perhaps spend more time going through material on the XDA-U site?
toefurkey said:
Thanks so much for posting this.
Code:
./obligatoryn00bstatement
Sorry for not being too knowledgeable here (yet?) and if this sort of comment doesn't belong.
I am a Computer Science major who really wants to learn some skills to hopefully give back to the community.
Is this an area that I could be of use or should I perhaps spend more time going through material on the XDA-U site?
Click to expand...
Click to collapse
I'm a little tired and somewhat intoxicated here at 3:45 AM so this is going to be a bit of rambling and so on...
While it's certainly a good idea to study up on what interests you before digging into it, sometimes it really can be easier just to dive in to your hobby.
I'm a high school drop out, never made it through college. Everything I've learned is by taking the great work done by the open source community and reading their code and applying it to other projects. That's the great thing about open source and nonrestrictive licenses. Everything is there for you to figure out, make changes, borrow code, run into problems, and the best part - search for solutions that others have already provided in their struggle to do exactly what you're doing.
Have an idea for a great feature? You can probably find it already implemented in another kernel somewhere.
Find the work someone else has done and modify it to fit your needs, but don't forget to give them credit for their work that you've used!
If you're going to start writing your own code, be certain to keep it tidy and variables/functions with meaningful names and comments so that not only others can understand and learn from it, but that you can return to the same code later on and understand it. Confusing code is how bugs tend to show up and become almost impossible to squash.
What I'm trying to get across here is don't be afraid to not be original. Don't be afraid to use others work to accomplish what you want, so long as they receive some attribution. The quickest way to learn how things work is by understanding what's already there and available to you.
You'll notice that there's projects all over XDA with special features ported from one device to another. Isn't it great having the all the best features people have added to other devices on one really nice device that you have?
PS I've never been on the XDA-U site before, so I can't give an opinion there.
I forgot what I was on about so I'll end this here lol.
?jcadduono you're on fire man thank you for everything you've been doing so far with such little resources.
Sent from my LG-H820 using XDA-Developers mobile app
jcadduono, thanks for the info and wonderful words of wisdom!
I totally agree on what you're saying and my goal is to try diving into this as a hobby. The hardest part for me isn't so much the coding part, but just figuring out a starting point to get grounded and build upon and I feel like what you've provided here is perhaps the starting point I need. Now it's just up to me to push myself in my free time.
Hi, i am new to kernel developing, but i did some roms myself before, so no total linux noob.
I cloned your 6.0.y and want to start from there, but im a little bit lost. Do i need to follow the steps @ github, or is your branch kinda pre setup ?
Toolchain path is also set to the one you gave a link too.
Pinu'u said:
Hi, i am new to kernel developing, but i did some roms myself before, so no total linux noob.
I cloned your 6.0.y and want to start from there, but im a little bit lost. Do i need to follow the steps @ github, or is your branch kinda pre setup ?
Toolchain path is also set to the one you gave a link too.
Click to expand...
Click to collapse
Hopefully once the toolchain path is set you should only need to run ./build.sh to actually build the kernel and dtb.
You may be missing some items for menuconfig.sh, which should just be solved by apt-get install colordiff libncurses5-dev
If building inside a ROM tree, it should be fairly simple for developers to adjust their ROM configs to add more to the kernel make command line, such as VARIANT_DEFCONFIG.
No matter what i do, kernel builds, but no dtb.img will be created. Any ideas where to look / what to test ?
I have stock-6.0.y, and did the h850 one.
Hi, is the stock-6.0.y branch removed?
I didnt find it. and need the right defconfig
greetz
mericon

Work in progress support for OMS

I was browsing Lineage Gerrit the other day and CMTE was being ported to Lineage 14.1. Someone commented on the change asking why not use OMS, and the change author replied something like "well, if you want OMS support why don't you submit a change and we'll see how it works?". So, I decided to do it.
I've forked some Lineage repositories and applied some changes from SubstratumResources to them. I tried testing it but something went terribly wrong, resulting in my phone not booting up (it got stuck in the Lineage boot animation). Perhaps I've missed some important commit (such as the SEPolicy one) and it could've bugged out my build.
So, I'm posting "my" (not actually mine, I just rebased them so they could be applied to Lineage source) patches here if someone wants to try it out and/or help me fix the issues that prevent OMS compatibility with LineageOS.
Repositories
android_system_sepolicy
android_frameworks_base
android_vendor_cm
android_frameworks_native
android
I've updated the links to the changed repositories in the android manifest, so if you want to try it out, just download it and save as manifest.xml inside android/system/.repo (assuming you're following Lineage's instructions to build), then run repo sync --force-sync to update the repositories.
EDIT: just a disclaimer - I'm not responsible for anything bad that happens with your phone. If you decide to build with these patches in place, know that it is your responsibility what happens to your phone. Always have a backup in case things go wrong.
Been trying to get it working too, at the point of just giving up on that github repo and picking the changes individually
ibrokemypie said:
Been trying to get it working too, at the point of just giving up on that github repo and picking the changes individually
Click to expand...
Click to collapse
Do you have a link for your repo? And did you manage to get it working (if so I want to compare the changes you've cherry-picked).
I'll build today and hopefully it'll work this time (or not). Will update this post as soon as I test.
RockyTV said:
Do you have a link for your repo? And did you manage to get it working (if so I want to compare the changes you've cherry-picked).
I'll build today and hopefully it'll work this time (or not). Will update this post as soon as I test.
Click to expand...
Click to collapse
yeah if you check my github you can see the repos with the oms changes successfully merged into LOS source. Trying to get it up on gerrit now
ibrokemypie said:
yeah if you check my github you can see the repos with the oms changes successfully merged into LOS source. Trying to get it up on gerrit now
Click to expand...
Click to collapse
Hm, it's a bit harder to compare because you didn't cherry-pick
Anyways, if you manage to get it on Gerrit, I'm not so sure if not cherry-picking can make a difference.

Security Update Integration?

Hello!
I've an older rom, that is marshmellow based. I wanted to know how to integrate security updates to it. It is a CM based AICP 11.1
Anyone know of any guides? Or Tools? I've looked through google and i dont get any answers, just what security updates do and so on.
Much appriciated, thank you.
KitsuneFoxy said:
Hello!
I've an older rom, that is marshmellow based. I wanted to know how to integrate security updates to it. It is a CM based AICP 11.1
Anyone know of any guides? Or Tools? I've looked through google and i dont get any answers, just what security updates do and so on.
Much appriciated, thank you.
Click to expand...
Click to collapse
First of all, AICP has already merged till July 2017 security patches in MM. Google has released security patches for MM till October 2017 (that was "android-6.0.1_r81") as seen here. So, afaik, for Marshmallow, you can get the security updates till r81 only.
Sync the AICP Rom repos from MM branch. I believe it is this: https://github.com/AICP/platform_manifest/tree/mm6.0
1. open the "default.xml" file and modify this line to
Code:
<default revision="refs/tags/android-6.0.1_r81"
2. you need to cd into .repo/manifests and commit the change
3. Now you can do a "repo sync --force-sync"
4. After it's done, open the AICP github page so you can see all the repos you'll upgrade.
Now you'll have to cd into each AICP repository (that's available on the AOSP page too ( https://android.googlesource.com/platform/ ).
You need to make sure you're on the default branch by running "git branch". If not, run "git checkout -b mm6.0" (replace "mm6.0" with whatever you think fit).
So, for example:
Code:
cd frameworks/base
git branch
git checkout -b mm6.0 (only if you're not on a branch, like I previously mentioned)
git remote add aosp [url]https://android.googlesource.com/platform/frameworks/base[/url]
git pull aosp android-6.0.1_r81
You'll now see the merging screen in the terminal if there aren't any conflicts. Press "Ctrl+O" then "Ctrl+X" and done.
You gotta do the same thing for all the other repositories, but with the correct aosp link for each of them.
Please note: as AICP tracks many repos from CM, Slim ROMs, DU and Omni, you'll have to make sure you are tracking appropriate branches for the repos used from those ROMs.
Hope this helps :highfive:
Nitin
Thank you, nitin! This rom is actually your edit, at least if i remember right from one of your threads. I'll have a go at getting the security patches installed on my nexus 4
Hi @nitin.chobhe
This is the rom i use. https://forum.xda-developers.com/nexus-4/development/rom-aicp-mako-t3274469
with the intergrated adaway/wakeblock/privacy and stuff.
using the OTA update doesnt give any updates, and there is no more mako listed on the AICP site.
What do i use to do the CD commands? Terminal in my android? Do i change the default xml on my phone or?
The only thing on this rom is Omni, as far as i can tell.
Unfortunately that wasnt made too clear what program i use to pull and stuff! Sorry.
KitsuneFoxy said:
Hi @nitin.chobhe
This is the rom i use. https://forum.xda-developers.com/nexus-4/development/rom-aicp-mako-t3274469
with the intergrated adaway/wakeblock/privacy and stuff.
using the OTA update doesnt give any updates, and there is no more mako listed on the AICP site.
What do i use to do the CD commands? Terminal in my android? Do i change the default xml on my phone or?
The only thing on this rom is Omni, as far as i can tell.
Unfortunately that wasnt made too clear what program i use to pull and stuff! Sorry.
Click to expand...
Click to collapse
You'll have to do a lot of reading and searching before trying to merge the security patches. It is not as easy as copy/ pasting some stuff/ files from server to your phone. Search on xda about how to build a ROM and when you build it successfully, then refer the steps I mentioned above.
Nitin
Thanks!
Since i like your specific version. I'll try my best.

[KERNEL] [DEV] Codeaurora(Experimental) and Unified (Testing) - Z1 to Z5 [WIP]

I decided it might be time to post this kernel as it's starting to take shape. It started life as an Xperiadev unified kernel with some modifications like memutils, it was used by Omnirom that saw a release for the Z1 using kernel 3.10, but had not seen an update since 2016 or so, since that's not something I could live with I decided on Codeaurora-msm-3.10-LA.BR.1.3.7_rb1.9 as a valid subject for purging updates from.
Currently my android-7.1 branch is stuck on the boot logo on Z1 (now led changes color and it reboots, instead of stick on logo before) and finding the issue has taken longer than expected, somewhat due to my relaxed approach this time. The code for supporting all Xperia devices all looks good but I have only Z1 and Z5 to test, for now I've focused on the Z1.
I've forked Xperiadev LA.BR.1.3.3_rb2.14 and testing changes, most surprisingly what i considered a small and important update to the iommu code resulted in a locked kernel, it is certainly not the easily spotted mistake i've been looking for that's at fault with my branch and so this will be my testbed for the code i find functional .
Results thus far:
Xperiadev unified LA.BR.1.3.3_rb2.14 with changes from Codeaurora merge:
https://github.com/threader/kernel , set default to LA.BR.1.3.3_rb2.14
git clone https://github.com/threader/kernel.git
https://github.com/threader/kernel
A speculative merge too far, so far:
git clone https://github.com/threader/android_kernel_sony_msm.git -b android-7.1
https://github.com/threader/android_kernel_sony_msm/tree/android-7.1?files=1
Used for updated qcom device driver code :
git clone git://codeaurora.org/quic/la/kernel/msm-3.10 -b LA.BR.1.3.7_rb1.9 (I also used LA.BR.1.3.7-01310-8976.0 )
threader said:
I decided it might be time to post this kernel as it's starting to take shape. It started life as an omnirom kernel for all Xperia devices, this had not seen an update since 2016 or so, since that's not something I could live with I decided on Codeaurora-msm-3.10-LA.BR.1.3.7_rb1.9 as a valid subject. Currently I'm stuck on the boot logo on Z1 and finding the issue has taken longer than expected, somewhat due to my relaxed approach this time. The code for supporting all Xperia devices all looks good but I have only Z1 and Z5 to test, for now I've focused on the Z1.
I'm working on the android-7.1 branch.
Any ideas?
https://github.com/threader/android_kernel_sony_msm/tree/android-7.1?files=1
Click to expand...
Click to collapse
Don't bother. That is based on Sony's Open Devices Project, which was a good concept but did not provide any sort of usability whatsoever for msm8974 devices. Stick to 3.4.x and forget about unification.
drakonizer said:
Don't bother. That is based on Sony's Open Devices Project, which was a good concept but did not provide any sort of usability whatsoever for msm8974 devices. Stick to 3.4.x and forget about unification.
Click to expand...
Click to collapse
I'm noting difficulties and riddles of #ifndef msm8974 but the omirom 3.10 kernel is not running badly, the camera has issues i noted, and i feel 3.4 has the attention of others.
Regarding the unified project, i started looking at the latest branch for legacy, if i remember correctly the correct branch for legacy is LA.BR.1.3.3_rb2.14, i feel i can compare and move code around with some confidence compared to an older version.
https://github.com/sonyxperiadev/kernel/tree/aosp/LA.BR.1.3.3_rb2.14

Regarding Android 10 on the HP Touchpad

Hello
For the past couple (weeks) I've been trying to compile Android 10 for tenderloin using the Android 9 sources but it's not going so well. First thing I ran into multiple sepolicy errors and I feel as if I fixed them in inappropriate ways but the errors went away. Other errors regarding camera and audio and such, that are regarding that tenderloin no longer uses the legacy audio format. Made me confused because I used the device sources form Evervolv and DIrty unicorns and if i'm correct they built it exactly the same way they uploaded it. After these errors were wrapped up, I got a error at zipping the rom that it could not zip due to failure of being able to read build.prop. This made me believe that the sources are not correctly formatted. If anyone can help me find a manifest, I can build for all you guys. Please keep tenderloin alive!
Now, I did something and I'm getting plenty of perl errors. Maybe I'm just very unlucky. I'm gonna attempt to reinstall on a fresh drive on my server.
If its anyone's concern, I was building lineage 17.1. I noticed for example, Lineage's "qcom-device" repo was shaped completely differently than Evervolvs qcom-device repo.
This led me to thought that Android 10 is going to be extremely difficult because of all the upstream dev changes that was pushed to Q. If any of you would like, I could probably push out March patches Pie rom because over there I'm mostly safe of complying with the source.
My manifest shape
DirtyUnicorn's device-tree
DirtyUnicorn's device-tree-common
DirtyUnicorn's htc-msm8960-kernel
Evervolv's vendor
And dirty unicorn's atheros wlan driver
I have been changing up the device tree so much, it almost looks ridiculous . From what I heard lots of properties on the device tree haven't been touched for years. Maybe tomorrow I can try Evervolv's Q rom. If you guys can help me build up my manifest, we can push out a fully working Q rom for tenderloin. And it would be just in time when Android 11 comes out. Thank you everyone!
I wish that I could offer any help, but I never tried to compile any Android ROM or for the HP_TP.
To my knowledge the only users that I know that could offer some insight on the process would be:
 @flintman
 @elginsk8r
Also the LuneOS project could offer some help:
https://pivotce.com/tag/luneos/
If Android Q(10) can not be ported to the HP_TP, then at least P(9) is a good ROM to keep updating that could provide many years of App support.
Theres no reason why exactly it cant,, because lots of roms I hear were built off the original TP sources (From 2011!). It was only around 2016 when guys around here had to change it up so much that they should've been so surprised that it worked. I can try and temporarily maintain P roms until the boys around here push out sources for Q!
djared704 said:
Theres no reason why exactly it cant,, because lots of roms I hear were built off the original TP sources (From 2011!). It was only around 2016 when guys around here had to change it up so much that they should've been so surprised that it worked. I can try and temporarily maintain P roms until the boys around here push out sources for Q!
Click to expand...
Click to collapse
To my limited knowledge is all about Hardware -->> Drivers -->> ( Kernel ).
The reason that Bluetooth and camera does not work on newer Android version is due to the old (proprietary drivers) and the Kernel. That takes more dedication and work than the ROM. The same rules applies to the desktop, older processors does not support certain features and the Operating System will not run. It is possible to disable the features in the kernel so that it does not check the hardware and make it run, but it will be unstable.
Everything could be possible with plenty of time, knowledge and dedication.
HP_TOUCHPAD said:
To my limited knowledge is all about Hardware -->> Drivers -->> ( Kernel ).
The reason that Bluetooth and camera does not work on newer Android version is due to the old (proprietary drivers) and the Kernel. That takes more dedication and work than the ROM. The same rules applies to the desktop, older processors does not support certain features and the Operating System will not run. It is possible to disable the features in the kernel so that it does not check the hardware and make it run, but it will be unstable.
Everything could be possible with plenty of time, knowledge and dedication.
Click to expand...
Click to collapse
When I look at the tenderloin source, the script to gather the camera driver is disabled. Camera isnt a huge deal though because its only 1.3 MP. However we use the MSM 8960 kernel from HTC and that is the one m7,, but the one m7 is a SD 600 device so it loses sense. I was gonna get some help with one of my kernel developer buddies to dev a kernel for android 10 for tenderloin. If you see the one m7 has Lineage 17.1 available and even though it doesnt have same chipset, if im correct both chipsets went off of the same assembly line process. Lineage 17.1 for the one m7 also packages it as a "uimage" which is what we use. I believe this was only a very small select of devices. Yeah about that ive been getting so many complaints during build about "mkimage" which should've been a prebuilt tool in the lineage source. Don't know why they removed it, or if our developers added it in by their selves, etc. Anyways I fixed that error by just "allowing" mkimage in one of the permission files in my environment. But yeah i went as far as the build packaging the ROM and it complaining it cannot read build.prop. Note the build.props are generated by the environment , not the source (even though the device data is gathered by the source, its not what im talking about). I even go to the directory it was complaining about and it was all there. One of my friends suggested a permission error. I changed permissions to 777 (rw to all users) and it would still output that error. By that point I trashed my build meaning I may of done something wrong early on. I will let someone else continue building 10 but I will continue building 9 with latest patches.
It will be extremely impressive if any kernel developer will update the HP Touchpad Kernel or tweak it for future release, well everything will stop once Android becomes 64 only.
I am sure you are very well aware, but I will suggest using this built:
https://forum.xda-developers.com/hp-touchpad/development/rom-evervolv-hp-touchpad-t3923512
I was able to do the following playing around recompiling the Kernel. I recompile almost all the ROM and incorporated the same kernel changes.
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-optimize-android-swap-t3901773
The Ramdisk is also very easy to unpack and repack:
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-novacom-repair-android-t3960435
There is no need to get the original Camera or Bluetooth working, only sound and WiFi.
HP_TOUCHPAD said:
It will be extremely impressive if any kernel developer will update the HP Touchpad Kernel or tweak it for future release, well everything will stop once Android becomes 64 only.
I am sure you are very well aware, but I will suggest using this built:
https://forum.xda-developers.com/hp-touchpad/development/rom-evervolv-hp-touchpad-t3923512
I was able to do the following playing around recompiling the Kernel. I recompile almost all the ROM and incorporated the same kernel changes.
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-optimize-android-swap-t3901773
The Ramdisk is also very easy to unpack and repack:
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-novacom-repair-android-t3960435
There is no need to get the original Camera or Bluetooth working, only sound and WiFi.
Click to expand...
Click to collapse
I think I probably stated somewhere, but Evervolvs "device" tree would just spit out hundreds of errors, and I fixed this by switching to Dirty Unicorns device tree. I also tried flintman's device tree and it didn't spit out many errors. Thanks for this though.
djared704 said:
I think I probably stated somewhere, but Evervolvs "device" tree would just spit out hundreds of errors, and I fixed this by switching to Dirty Unicorns device tree. I also tried flintman's device tree and it didn't spit out many errors. Thanks for this though.
Click to expand...
Click to collapse
I have only recompile the Kernel and all of them work, but the correct branch must be use. I can not say about building a ROM, never done it.
But Evervovs Pie by elginsk8r works very well and stable as it uses the same kernel, but the framework is different. I guess elginsk8r will be the only that can guide you on the right direction or flintman.
Have fun learning, it takes a lot of TIME!

Categories

Resources