Related
@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
Trying to get this darn kernel upstreamed to 3.4.112 got all the commits done. Just wondering how do I regenerate these defconfigs? I've worked with other kernels before but never ones where there are multiple for just one device. Any kernel devs wanna chime in?
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.
Regarding this thread https://forum.xda-developers.com/moto-g4-plus/development/kalilinux-nethunter-t3639411
The OP tywinlannister did not patch the kernel source code with Android USB HID PATCH To use the Android device as keyboard or mouse..This should be applied for nethunter ROM, But he didn't..
And I asked resurrection remix ROM maintainer Jleeblanch for Athene to look at this issue he did it , after applying the patch it didn't successfully compile ,there were errors..By seeing the error he said that the official kernel is partially patched already,so it is causing those errors..
If anybody looks into the problem it would be appreciated just in your free time only ...
The link to kernel source of Jleeblanch is the "Kali branch" https://github.com/Jleeblanch/android_kernel_motorola_msm8952
Any problem or suggestions regarding to this can be discussed here itself , that others can address the issue..
I too have been waiting for a working kernel so I am going to attempt to compile a working kernel with hid with my limited kernel development knowledge. I think it probably won't work as two far better devs than me have yet been unable however I will try anyway
Any help from fellow devs would be greatly appreciated
Dougleplex said:
I too have been waiting for a working kernel so I am going to attempt to compile a working kernel with hid with my limited kernel development knowledge. I think it probably won't work as two far better devs than me have yet been unable however I will try anyway
Any help from fellow devs would be greatly appreciated
Click to expand...
Click to collapse
I am also a newbie to kernel development but I manually patched the hid sources to kernel source..
But when we complied it all those errors.
First I think we should delete all those hid patches all applied to the stock kernel source. Then compile it and then apply the patch by pelya...
My ROM s kernel developer say MM kernel will be easy but it is also partially patch
You may give it a try
Dhanush-raj said:
I am also a newbie to kernel development but I manually patched the hid sources to kernel source..
But when we complied it all those errors.
First I think we should delete all those hid patches all applied to the stock kernel source. Then compile it and then apply the patch by pelya...
Click to expand...
Click to collapse
I'm going to attempt to patch jleeblanch's rr kernel and then work backwards depending on the errors as last time I did something like this (s7 edge nethunter kernel) the error was a corrupted source and could easily have been fixed by finding a different repository rather than starting from scratch (what we did). I'm unsure as to what will happen after that however your idea is just as valid and I will try straight after (if you haven't already)
Test this kernel
Note that this is the Invicta kernel. You need a revert before the actual patch. Both commits are available on my gitlab.
Merged both into a single commit. Note that Invicta kernel is still 3.10.84. Upstream kernels may need additional changes. Test and let me know.
If you want to apply the patch to your kernel, you can use the attached patch file or use the commands below. ( using lineage kernel as example )
Code:
git clone https://github.com/LineageOS/android_kernel_motorola_msm8952.git
cd android_kernel_motorola_msm8952
git checkout cm-14.1
git remote add invicta https://gitlab.com/sileshn/android_kernel_motorola_athene.git
git fetch invicta
git cherry-pick 04aa0b10521b76e57226b2d1633e2b91cfa40263
If you don't get errors, you are good to go. If it errors, it needs more changes.
Silesh.Nair said:
Note that this is the Invicta kernel. You need a revert before the actual patch. Both commits are available on my gitlab.
Merged both into a single commit. Note that Invicta kernel is still 3.10.84. Upstream kernels may need additional changes. Test and let me know.
If you want to apply the patch to your kernel, you can use the attached patch file or use the commands below. ( using lineage kernel as example )
Code:
git clone https://github.com/LineageOS/android_kernel_motorola_msm8952.git
cd android_kernel_motorola_msm8952
git checkout cm-14.1
git remote add invicta https://gitlab.com/sileshn/android_kernel_motorola_athene.git
git fetch invicta
git cherry-pick 04aa0b10521b76e57226b2d1633e2b91cfa40263
If you don't get errors, you are good to go. If it errors, it needs more changes.
Click to expand...
Click to collapse
Kernel version 3.10.105 was initially the kernel I tried patching. I was easily able to merge the patch, but compiling it was a different story. According the errors I got, a lot of thing we're duplicated. I told the guy above that the MM based kernel (3.10.84 - which is the same version for MM thru Nougat on stock) would probably be the best bet. Looks like you had little trouble at all with merging into your Invicta Kernel (which is also kernel version 3.10.84).
Good job and thank you [emoji41]
Silesh.Nair said:
Note that this is the Invicta kernel. You need a revert before the actual patch. Both commits are available on my gitlab.
Merged both into a single commit. Note that Invicta kernel is still 3.10.84. Upstream kernels may need additional changes. Test and let me know.
If you want to apply the patch to your kernel, you can use the attached patch file or use the commands below. ( using lineage kernel as example )
If you don't get errors, you are good to go. If it errors, it needs more changes.
Click to expand...
Click to collapse
Thanks @Silesh.Nair I have been waiting long time for this patch. Once again thank you sir...
The patch is working perfectly in 3.10.105 i.e jleeblanch kernel source..
Linux version 3.10.107-lineageOS ([email protected]) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05) ) #1 SMP PREEMPT Sat Aug 5 04:20:04 PDT 2017
And thank you @Jleeblanch Also
boot tool
Silesh.Nair said:
Note that this is the Invicta kernel. You need a revert before the actual patch. Both commits are available on my gitlab.
Merged both into a single commit. Note that Invicta kernel is still 3.10.84. Upstream kernels may need additional changes. Test and let me know.
If you want to apply the patch to your kernel, you can use the attached patch file or use the commands below. ( using lineage kernel as example )
Code:
git clone https://github.com/LineageOS/android_kernel_motorola_msm8952.git
cd android_kernel_motorola_msm8952
git checkout cm-14.1
git remote add invicta https://gitlab.com/sileshn/android_kernel_motorola_athene.git
git fetch invicta
git cherry-pick 04aa0b10521b76e57226b2d1633e2b91cfa40263
If you don't get errors, you are good to go. If it errors, it needs more changes.
Click to expand...
Click to collapse
Hey which tool did you used to make boot.img.
Marella ram_youtubr said:
Note that this is the Invicta kernel. You need a revert before the actual patch. Both commits are available on my gitlab.
Merged both into a single commit. Note that Invicta kernel is still 3.10.84. Upstream kernels may need additional changes. Test and let me know.
If you want to apply the patch to your kernel, you can use the attached patch file or use the commands below. ( using lineage kernel as example )
Hey which tool did you used to make boot.img.
Click to expand...
Click to collapse
I am using lazyflasher
https://github.com/jcadduono/lazyflasher
Just clone this repo and place the zimage in there and type make, you will get a zip file. Just flash it through twrp recovery. Because only the kernel is changed , so i am just replacing the zimage. No need of unpacking and repacking of boot image.:good:
i have compiled a zimage from kali_defconfig from above source.but when i flased it to phone the phone is not booting.
I NEED A FIX FOR THIS
Marella ram_youtubr said:
i have compiled a zimage from kali_defconfig from above source.but when i flased it to phone the phone is not booting.
I NEED A FIX FOR THIS
Click to expand...
Click to collapse
Which toolchian did you use, and what kernel source and rom you are using .
Give me as detailed information as possible!
Dhanush-raj said:
Which toolchian did you use, and what kernel source and rom you are using .
Give me as detailed information as possible!
Click to expand...
Click to collapse
Kernel Source:-https://github.com/Jleeblanch/android_kernel_motorola_msm8952/tree/kali-nougat
toolchain:- https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8 nougat-release
rom:- lineage 14.1 official
Marella ram_youtubr said:
Kernel Source:-https://github.com/Jleeblanch/android_kernel_motorola_msm8952/tree/kali-nougat
toolchain:- https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8 nougat-release
rom:- lineage 14.1 official
Click to expand...
Click to collapse
Don't use that source it isn't patched correctly, although i said mr. Jleeblanch to try , so he created it. The hid patch is merged into his resurrected kernel, but for mac injection i dont remember. So you better start from the first.
Use lineage kernel source and apply the patch from this thread #6th post, and see what toolchain is used to build lineage 14 kernel and use it. And additionally you have to make some changes in the defconfig, which is explained in the kali-nethunter github page.
Dhanush-raj said:
Don't use that source it isn't patched correctly, although i said mr. Jleeblanch to try , so he created it. The hid patch is merged into his resurrected kernel, but for mac injection i dont remember. So you better start from the first.
Use lineage kernel source and apply the patch from this thread #6th post, and see what toolchain is used to build lineage 14 kernel and use it. And additionally you have to make some changes in the defconfig, which is explained in the kali-nethunter github page.
Click to expand...
Click to collapse
thanks buddy
Dhanush-raj said:
Don't use that source it isn't patched correctly, although i said mr. Jleeblanch to try , so he created it. The hid patch is merged into his resurrected kernel, but for mac injection i dont remember. So you better start from the first.
Use lineage kernel source and apply the patch from this thread #6th post, and see what toolchain is used to build lineage 14 kernel and use it. And additionally you have to make some changes in the defconfig, which is explained in the kali-nethunter github page.
Click to expand...
Click to collapse
sileshn has removed his source
Marella ram_youtubr said:
sileshn has removed his source
Click to expand...
Click to collapse
https://forum.xda-developers.com/mo...ustom-kernel-developers-t3641363/post73257121
Dhanush-raj said:
https://forum.xda-developers.com/mo...ustom-kernel-developers-t3641363/post73257121
Click to expand...
Click to collapse
He had deleted his repo from gitlab
Marella ram_youtubr said:
He had deleted his repo from gitlab
Click to expand...
Click to collapse
use this bro...
Dhanush-raj said:
use this bro...
Click to expand...
Click to collapse
Actually my orginal phone is honor 6x.I love portable hacking.Like with nethunter.I tried to build nethunter kernel for honor 6x.But i failed at HID.So i took by brothers old phone That is moto g4 plus.later i found that moto g4 plus at android 7 is 32 bit.As there is no nethunter for 32 bit i have decided that atleast i should use linux deploy.But later i suck at wifi drivers.When i enable wifi drivers in kernel then phone doenst boot.
The final thing is can anyone help me in fixing this so that i can build a complete usable kernel with Net Hunter support
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.