[ROM][SGH-I777][4.0.4] CyanogenMod 9 nightly builds | DEVELOPMENT THREAD - AT&T Samsung Galaxy S II SGH-I777

DEVELOPMENT THREAD
FOR DEVELOPERS ONLY​
DISCUSSION THREAD FOR USERS:
http://forum.xda-developers.com/showthread.php?t=1568848​
CyanogenMod is a free, community built, aftermarket firmware distribution of Android 4.0 (ICS), which is designed to increase performance and reliability over stock Android for your device.
Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*
* Submitting bug reports on nightly builds is the leading
* cause of male impotence.
*/
CyanogenMod is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. Linked below is a package that has come from another Android project that restore the Google parts. CyanogenMod does still include various hardware-specific code, which is also slowly being open-sourced anyway.
All the source code for CyanogenMod is available in the CyanogenMod Github repo. And if you would like to contribute to CyanogenMod, please visit out Gerrit Code Review. You can also view the Changelog for a full list of changes & features.
General:
http://github.com/CyanogenMod
Device (you need both):
http://github.com/CyanogenMod/android_device_samsung_galaxys2
http://github.com/CyanogenMod/android_device_samsung_i777
Kernel:
https://github.com/teamhacksung/android_kernel_samsung_smdk4210
Build:
http://teamhacksung.org/wiki/index.php/CyanogenMod9:SGH-I777:How_to_build
Getting Started:
http://wiki.cyanogenmod.com/wiki/Howto:_Gerrit
Example:
- cd ~/android/system
- repo start branchname CyanogenMod/android_device_samsung_i777 (or android_device_galaxys2 depending on whether your work is in common galaxys2 or i777)
-- Make your changes at device/samsung/i777 (or galaxys2)
- cd device/samsung/i777 (or galaxys2)
- git add -A
- git commit -a
- cd ~/android/system
- repo upload CyanogenMod/android_device_samsung_i777 (or android_device_samsung_galaxys2 if your changes are to galaxys2)
Many of your changes will actually be in the android_device_samsung_galaxys2 repo as well as the code is shared between the galaxys2 and i777 so you will also need to work in that repo.
Navigate to http://review.cyanogenmod.com , click your commit and add atinm for i777, atinm, codeworkx and xplodwild for galaxys2, as reviewers.

Saved for later.

Alright, this thread has been cleaned up to here. All other non-dev members can discuss this here in the designated discussion thread in the General forum.

atinm - don't know if you saw, but there's a pending gerrit submission for an updated kernel.
The current set of kernels has ondemand as default but interactive governor enabled - this combo can cause hung task freezes in LPM and recovery.
http://review.cyanogenmod.com/#change,14072
(I tried to add you as a reviewer but I'm not sure if that's the correct atinm. The system is full of "use the other atinm" users. )

Entropy512 said:
atinm - don't know if you saw, but there's a pending gerrit submission for an updated kernel.
The current set of kernels has ondemand as default but interactive governor enabled - this combo can cause hung task freezes in LPM and recovery.
http://review.cyanogenmod.com/#change,14072
(I tried to add you as a reviewer but I'm not sure if that's the correct atinm. The system is full of "use the other atinm" users. )
Click to expand...
Click to collapse
Saw this too late - I pushed the same kernel plus an added assert for galaxys2 so people using the bad ported galaxys2 builds can get to i777. I'll take out the galaxys2 assert in a couple of days after people are on i777. Building a new nightly.
Will look at the GPS you have on gerrit in a little bit - have to be out for a few hours.

Building from source
I am trying to build it locally with following error:
Code:
[email protected]:~/android/system$ brunch i777
---//some skipped output///---
build/core/product_config.mk:189: *** _nic.PRODUCTS.[[device/*/i777/cm.mk]]: "vendor/samsung/i777/i777-vendor-blobs.mk" does not exist. Stop.
** Don't have a product spec for: 'cm_i777'
** Do you have the right repo manifest?
My manifest:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_samsung_galaxys2" path="device/samsung/galaxys2" remote="github" />
<project name="CyanogenMod/android_device_samsung_i777" path="device/samsung/i777" remote="github" />
<project name="teamhacksung/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" remote="github" revision="ics" />
<project name="teamhacksung/buildscripts" path="buildscripts" remote="github" revision="ics">
<copyfile dest="build.sh" src="samsung/build.sh" />
</project>
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" />
</manifest>
Any help is greatly appreciated!

you didn't do extract-files
Not sure if looking for galaxys2 will cut it... Most likely a bunch of people are coming from Touchwiz-based firmwares.
I admit I am partially at fault - I didn't implement sed scripts in Hellraiser to change the model, partly to minimize the chances that something would break. (The rule was to change as little as possible to make things work in order to maximize compatibility.)

sam3000 said:
I had that too (link). As a workaround, edit device/samsung/i777/extract-files.sh and change DEVICE=galaxys2 to DEVICE=i777 and it should build. I'm not sure what the correct fix should be though..
The other stuff I mention in the linked post has since been fixed.
Click to expand...
Click to collapse
The issue is that the proprietary files that the i777 is using are from the galaxys2 and it just pulls them from there. But the .mk files that are generated need to go into the i777 directory. I've updated extract-files.sh to try to get around it, but need someone to test.

atinm said:
The issue is that the proprietary files that the i777 is using are from the galaxys2 and it just pulls them from there. But the .mk files that are generated need to go into the i777 directory. I've updated extract-files.sh to try to get around it, but need someone to test.
Click to expand...
Click to collapse
I tried to run extract-files.sh and got:
Code:
remote object '/system/lib/libGLESv2_dbg.so' does not exist
Which gave me this during compile:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/libGLESv2_dbg.so', needed by `out/target/product/i777/system/lib/libGLESv2_dbg.so'. Stop.
I have the latest repo as describe in the op. Anyone else run into this issue? Ran the extract on cm7.

5942marine said:
I tried to run extract-files.sh and got:
Code:
remote object '/system/lib/libGLESv2_dbg.so' does not exist
Which gave me this during compile:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/libGLESv2_dbg.so', needed by `out/target/product/i777/system/lib/libGLESv2_dbg.so'. Stop.
I have the latest repo as describe in the op. Anyone else run into this issue? Ran the extract on cm7.
Click to expand...
Click to collapse
Did you enable root for adb before running extract-files.sh? And what ROM do you have now?

I had cm7 on it when I ran the extract, I just did it on that phone bricker build as well, only ended up missing one *.so, cant remember which exact file it was, had to step away. Will get back in the am.
Sent from my SGH-I777 using XDA
Update: Just flashed atinm's nightly of CM9, ran extract_files.sh and no errors at all.

5942marine said:
I tried to run extract-files.sh and got:
Code:
remote object '/system/lib/libGLESv2_dbg.so' does not exist
Which gave me this during compile:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/libGLESv2_dbg.so', needed by `out/target/product/i777/system/lib/libGLESv2_dbg.so'. Stop.
I have the latest repo as describe in the op. Anyone else run into this issue? Ran the extract on cm7.
Click to expand...
Click to collapse
5942marine said:
I had cm7 on it when I ran the extract, I just did it on that phone bricker build as well, only ended up missing one *.so, cant remember which exact file it was, had to step away. Will get back in the am.
Sent from my SGH-I777 using XDA
Update: Just flashed atinm's nightly of CM9, ran extract_files.sh and no errors at all.
Click to expand...
Click to collapse
Confirmed, /system/lib/libGLESv2_dbg.so does not exist in CM7 so of course it can't be extracted. Screencap of partial file list from my last nandroid on CM7 before upgrading attached.

All non-dev related posts have been moved over to the General CM9 thread.
I guess the giant red bolded DEV tag at the top isnt obvious enough.

Just an update... I was compiling the latest build, and got the following error:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/hwcomposer/lib/libfimc.so', needed by `out/target/product/i777/obj/lib/libfimc.so'. Stop.
Now, when i ran ./extract-files, I didn't recieve any errors while it was pulling the files.
I can see that the file is in the galaxy2-common directory, under the proprietary folder.
There is not folder under proprietary /hwcomposer/lib

5942marine said:
Just an update... I was compiling the latest build, and got the following error:
Code:
make: *** No rule to make target `vendor/samsung/galaxys2-common/proprietary/hwcomposer/lib/libfimc.so', needed by `out/target/product/i777/obj/lib/libfimc.so'. Stop.
Now, when i ran ./extract-files, I didn't recieve any errors while it was pulling the files.
I can see that the file is in the galaxy2-common directory, under the proprietary folder.
There is not folder under proprietary /hwcomposer/lib
Click to expand...
Click to collapse
This is the fix for the same issue that was present in galaxys2:
http://review.cyanogenmod.com/#change,13935

Posts cleaned out again. Im only going to say this one last time...
THIS THREAD IS FOR DEVELOPMENT ONLY. IF YOU ARE NOT HELPING DEVELOP FOR CM9 THEN YOU SHOULD POST IN THE GENERAL THREAD, NOT THIS THREAD. ANY FURTHER NON-DEV RELATED POSTS WILL RECEIVE AN AUTOMATIC INFRACTION AND THEIR POST WILL BE DELETED.

sam3000 said:
This is the fix for the same issue that was present in galaxys2:
http://review.cyanogenmod.com/#change,13935
Click to expand...
Click to collapse
Thanks, got it working.

sam3000 said:
This is the fix for the same issue that was present in galaxys2:
http://review.cyanogenmod.com/#change,13935
Click to expand...
Click to collapse
http://review.cyanogenmod.com/#change,14155 fixes the same thing for i777.

5942marine said:
Thanks, got it working.
Click to expand...
Click to collapse
Any extract-files.sh fixes you make - please gerrit them, or just send them to me directly via email if you don't know gerrit (learn Gerrit if you intend to develop for CM!).

Red5 said:
All non-dev related posts have been moved over to the General CM9 thread.
I guess the giant red bolded DEV tag at the top isnt obvious enough.
Click to expand...
Click to collapse
Can you clarify - I take it discussion about build issues that are because script fixups are necessary in github sources is also off-limits ? ie where the root issue is in the repo not the person trying to compile. (Previous post removal implies this.)
If someone can't massage whatever comes out of github in order to get it to compile then it's unlikely they would be posting patches even if the build worked. However, on the other hand, I would argue it's also useful to identify, discuss and fix any build related issues for the benefit of all (separate thread perhaps?)

Related

[Q] Build Paranoid Android unofficially from source on HTC Desire?

Hey guys. I have a HTC Desire which is unsupported by Paranoid Android on it's list of supported devices.
Seeing as I've only got my feet wet in the world of android development by building CM from source.
I now want to build Paranoid Android from source on my HTC Desire. Seeing as it is unsupported from PA I have downloaded the PA source and I now need to merge it with the Evervolv source as the Evervolv source is the one built for Jellybean to work on the Desire!
Thanks for your help guys!
topgeardave said:
Hey guys. I have a HTC Desire which is unsupported by Paranoid Android on it's list of supported devices.
Seeing as I've only got my feet wet in the world of android development by building CM from source.
I now want to build Paranoid Android from source on my HTC Desire. Seeing as it is unsupported from PA I have downloaded the PA source and I now need to merge it with the Evervolv source as the Evervolv source is the one built for Jellybean to work on the Desire!
Thanks for your help guys!
Click to expand...
Click to collapse
There's instructions on paranooid androids website or github...I don't remember which one....
Basically you sync paranoid android source then you add your device tree/proprietary/kernel
Then you build
It's the same process as cyanogenmod except you use PA source instead of CM source
Sent from my HTC PH39100 using Tapatalk 2
mg2195 said:
There's instructions on paranooid androids website or github...I don't remember which one....
Basically you sync paranoid android source then you add your device tree/proprietary/kernel
Then you build
It's the same process as cyanogenmod except you use PA source instead of CM source
Sent from my HTC PH39100 using Tapatalk 2
Click to expand...
Click to collapse
This. Assuming they are setup like most other Android distros, you just pull their source, grab a device/proprietary folder for you device and you are good to go. You will of course need to fix any issues that arise while compiling but that is where you should start.
Thanks guys! You're the best! I'll try it and if I have any problems compiling I'll let you know
What would I do once I've cloned all necessary device files?
Hey guys, I've merged the cm10 files needed to get it compiling. When I tried compiling I've got this error whilst building. Any help would be much appreciated
find: ‘src’: No such file or directory
*** Overlay change detected, clean shared intermediate files...
*** rm -rf out/target/common/obj/APPS/Settings_intermediates out/target/common/obj/APPS/framework-res_intermediates out/target/common/obj/APPS/Mms_intermediates out/target/common/obj/APPS/Phone_intermediates out/target/common/obj/APPS/Gallery2_intermediates out/target/common/obj/APPS/LatinIME_intermediates out/target/common/obj/APPS/SettingsProvider_intermediates out/target/common/obj/APPS/SystemUI_intermediates
PRODUCT_COPY_FILES vendor/pa/prebuilt/common/bin/backuptool.sh:system/bin/backuptool.sh ignored.
PRODUCT_COPY_FILES vendor/pa/prebuilt/common/apk/GooManager.apk:system/app/GooManager.apk ignored.
PRODUCT_COPY_FILES vendor/pa/prebuilt/common/bootanimation/HDPI.zip:system/media/bootanimation.zip ignored.
PRODUCT_COPY_FILES vendor/pa/prebuilt/pa_bravo.conf:system/etc/paranoid/properties.conf ignored.
PRODUCT_COPY_FILES vendor/pa/prebuilt/pa_bravo.conf:system/etc/paranoid/backup.conf ignored.
No private recovery resources for TARGET_DEVICE bravo
build/core/tasks/kernel.mk:44: ***************************************************************
build/core/tasks/kernel.mk:45: * Using prebuilt kernel binary instead of source *
build/core/tasks/kernel.mk:46: * THIS IS DEPRECATED, AND WILL BE DISCONTINUED *
build/core/tasks/kernel.mk:47: * Please configure your device to download the kernel *
build/core/tasks/kernel.mk:48: * source repository to kernel/htc/qsd8k
build/core/tasks/kernel.mk:49: * See http://wiki.cyanogenmod.com/wiki/Integrated_kernel_building
build/core/tasks/kernel.mk:50: * for more information *
build/core/tasks/kernel.mk:51: ***************************************************************
make: *** No rule to make target `out/target/product/bravo/kernel', needed by `out/target/product/bravo/boot.img'. Stop.
Total time elapsed: 0 minutes (52.929561210 seconds)
Click to expand...
Click to collapse
topgeardave said:
Hey guys, I've merged the cm10 files needed to get it compiling. When I tried compiling I've got this error whilst building. Any help would be much appreciated
Click to expand...
Click to collapse
Is your device support by CM9/in development for CM10? Can you add the inline kernel building feature? Also double check all the paths/filenames involved here to make sure they are valid.
thewadegeek said:
Is your device support by CM9/in development for CM10? Can you add the inline kernel building feature? Also double check all the paths/filenames involved here to make sure they are valid.
Click to expand...
Click to collapse
It's not supported by CM themselves but another Dev has compiled it from source and I have cloned his repositories. Where can I place a kernel source inside my PA source? In the htc/bravo folder? And how can I add the inline kernel building feature?
Look at a currently supported device for details I'm how to do it, or maybe lithid can help you here. I currently don't have access to all my crap though, so I can't get the information. Have you checked to make sure your kernel is named appropriately and in the correct location? Even though it's deprecated that method should work.
Sent from my SCH-R760 using Tapatalk 2
thewadegeek said:
Look at a currently supported device for details I'm how to do it, or maybe lithid can help you here. I currently don't have access to all my crap though, so I can't get the information. Have you checked to make sure your kernel is named appropriately and in the correct location? Even though it's deprecated that method should work.
Sent from my SCH-R760 using Tapatalk 2
Click to expand...
Click to collapse
Oh right ok, I'll try and ask a few HD2 devs on how they managed to build it from source. And how should I name the kernel source?
topgeardave said:
Oh right ok, I'll try and ask a few HD2 devs on how they managed to build it from source. And how should I name the kernel source?
Click to expand...
Click to collapse
You can name the folder whatever you want, it just needs to match whatever you put into your BoardConfig.Mk.
You'll need to add the following lines to is:
# Kernel Config
TARGET_KERNEL_SOURCE := path/to/your/kernel
TARGET_KERNEL_CONFIG := your_config_defconfig
thewadegeek said:
You can name the folder whatever you want, it just needs to match whatever you put into your BoardConfig.Mk.
You'll need to add the following lines to is:
# Kernel Config
TARGET_KERNEL_SOURCE := path/to/your/kernel
TARGET_KERNEL_CONFIG := your_config_defconfig
Click to expand...
Click to collapse
Thanks mate, I'll try that as soon as I get home as I'm at work at the moment. If I face any other problems, I'll let you guys know
I ran into that problem as well trying to compile PA for the Rezound, and it was just I had the kernel folder named wrong. I had to change /pa/kernel/htc/vigor to /pa/kernel/htc/vigor-3.0 but now Im running into more problems.

? How to build CMAccount

I've been building my own nightlies of CM 10.2 for my mako. I was curious if anyone has any links to guides on how to pull and build the CMAccount app from source? I wanted to play around with it and see what it looks like..
From what I gather, I just need to add the CMAccount git path to my roomservice.xml, then sync and build, will it be in the completed rom, or do I have to inject the app somewhere?
Thanks
VoiD_Dweller said:
I've been building my own nightlies of CM 10.2 for my mako. I was curious if anyone has any links to guides on how to pull and build the CMAccount app from source? I wanted to play around with it and see what it looks like..
From what I gather, I just need to add the CMAccount git path to my roomservice.xml, then sync and build, will it be in the completed rom, or do I have to inject the app somewhere?
Thanks
Click to expand...
Click to collapse
If you want to take a look at the source code for the CMAccount app you can find the full source code on the Cyanogenmod Github here https://github.com/CyanogenMod/android_packages_apps_CMAccount. Then if you want to modify and play around with the source code and make your own changes you can import the app source code into Eclipse (From the Eclipse menu File -> New Project -> Android Project -> Select "Existing Project") after git cloning the CMAccount repository. To add it to your ROM what you can do is use local_manifest.xml to add the CMAccount source code to be built into your ROM by default. For some great guides on using local_manifest.xml when compiling I would recommend checking out these guides here, and here, as well as this guide to adding your own app during compiling here. Let me know if you still have questions.
shimp208 said:
If you want to take a look at the source code for the CMAccount app you can find the full source code on the Cyanogenmod Github here https://github.com/CyanogenMod/android_packages_apps_CMAccount. Then if you want to modify and play around with the source code and make your own changes you can import the app source code into Eclipse (From the Eclipse menu File -> New Project -> Android Project -> Select "Existing Project") after git cloning the CMAccount repository. To add it to your ROM what you can do is use local_manifest.xml to add the CMAccount source code to be built into your ROM by default. For some great guides on using local_manifest.xml when compiling I would recommend checking out these guides here, and here, as well as this guide to adding your own app during compiling here. Let me know if you still have questions.
Click to expand...
Click to collapse
Thanks a bunch for the links and help. I went ahead and added it to my roomservice in local_manifests as follows:
Code:
<project name="CyanogenMod/android_packages_apps_CMAccount" path="packages/apps" remote="github" />
I also did a git fetch git://github.com/CyanogenMod/android_packages_apps_CMAccount and another repo sync.
It seemed to pick it up, is a clone preferred, or is fetch adequate? Missing anything? I'm attempting a build and hoping it works..
VoiD_Dweller said:
Thanks a bunch for the links and help. I went ahead and added it to my roomservice in local_manifests as follows:
Code:
<project name="CyanogenMod/android_packages_apps_CMAccount" path="packages/apps" remote="github" />
I also did a git fetch git://github.com/CyanogenMod/android_packages_apps_CMAccount and another repo sync.
It seemed to pick it up, is a clone preferred, or is fetch adequate? Missing anything? I'm attempting a build and hoping it works..
Click to expand...
Click to collapse
A fetch is fine, a clone is really only needed if you want to take a look at the source code, or want to download the source code to modify. Overall, for what you want to do integrating the app in your ROM a fetch will work just fine.

[ROM][OFFICIAL] CyanogenMod 13.0 Nightlies for the HTC One m8

CyanogenMod is a free, community built, aftermarket firmware distribution of Android 6.0 (Marshmallow), which is designed to increase performance and reliability over stock Android for your device.
Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* We are not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at us for messing up your device, we will laugh at you.
*
*/
CyanogenMod is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. You will need to provide your own Google Applications package (gapps). CyanogenMod does still include various hardware-specific code, which is also slowly being open-sourced anyway.
All the source code for CyanogenMod is available in the CyanogenMod Github repo. And if you would like to contribute to CyanogenMod, please visit our Gerrit Code Review.
Download Links
Make sure you're on an M-gen baseband
Links: http://forum.xda-developers.com/showpost.php?p=66760703&postcount=1270
CyanogenMod:
Nightly: http://download.cyanogenmod.org/?device=m8&type=nightly
Google apps addon:
OpenGapps: http://opengapps.org/ (you'll want a zip for the ARM platform, Android version 6.0)
HEADS UP: Be sure you flash the gapps package with your rom. If you boot your rom, then go back and try to flash gapps after the fact, you're gonna have a bad time.
Misc Links
Unoffical changelog:
Link: http://www.cmxlog.com/13/m8/
Learn to build yourself:
Link: https://wiki.cyanogenmod.org/w/Build_for_m8
The CyanogenMod team would like to thank everyone involved in helping with testing, coding, debugging & documenting! Enjoy!
XDA:DevDB Information
[ROM][OFFICIAL] CyanogenMod 13.0 Nightlies for the HTC One m8 , ROM for the HTC One (M8)
Contributors
invisiblek
Source Code: http://www.github.com/CyanogenMod
ROM OS Version: 6.0.x Marshmallow
ROM Kernel: Linux 3.4.x
Version Information
Status: Nightly
Created 2015-11-25
Last Updated 2015-11-24
Says 12.1 still - I'm first!!!
Invisiblek, you made the thread before the CM13 nightlies even started! Silly goose <3!
Opticuhl said:
Invisiblek, you made the thread before the CM13 nightlies even started! Silly goose <3!
Click to expand...
Click to collapse
meh
lol looks like it missed the nightly list this time too...dang...well i guess this thread is useless until tomorrow
invisiblek said:
meh
lol looks like it missed the nightly list this time too...dang...well i guess this thread is useless until tomorrow
Click to expand...
Click to collapse
No worries.
Gonna back up all the goodies tonight
Sent from my HTC One_M8 using Tapatalk
So how many times do you think someone is going to ask where the downloads are because they can't find the right link? Lol! I'm betting at least 10 haha
Where's the links I can only find cm 15.1?
Joking aside, I can't wait. Looking forward to the 13 nightlies on my M8. Good job to everyone involved.
Ooooooo lucky 13. Can't wait to try this out!! I'm on the stock rooted version of MM right now. Anxious to see what CM has added!
Sent from my HTC One_M8 using Tapatalk
Hey @invisiblek
Thank you so much for bringing the m8 to cm13!
I'm trying to build a copy (just for fun, and see if I can play around with some toolchains) and I have a quick question.
(The last time I built cm was over a year ago, so I'm a bit rusty.)
How do I include the Muppets proprietary blobs in my build? I'm Googling it and I think that I need to add a few lines to my repo manifest. Can you share with me the correct project lines to add?
Thanks!
David 617 said:
Hey @invisiblek
Thank you so much for bringing the m8 to cm13!
I'm trying to build a copy (just for fun, and see if I can play around with some toolchains) and I have a quick question.
(The last time I built cm was over a year ago, so I'm a bit rusty.)
How do I include the Muppets proprietary blobs in my build? I'm Googling it and I think that I need to add a few lines to my repo manifest. Can you share with me the correct project lines to add?
Thanks!
Click to expand...
Click to collapse
Something like this in local manifest.
Code:
<project name="themuppets/proprietary_vendor_htc" path="vendor/htc" remote="github" />
Darknites said:
Something like this in local manifest.
Code:
<project name="themuppets/proprietary_vendor_htc" path="vendor/htc" remote="github" />
Click to expand...
Click to collapse
Thanks! One more question, how do I reset my local repo so I can erase changes I made?
David 617 said:
Thanks! One more question, how do I reset my local repo so I can erase changes I made?
Click to expand...
Click to collapse
You can do a force sync or you just delete the folder. It should tell you how if it runs into any issues with your changes.
I made an updated cm build. I don't know if I'm allowed to post a link here, but if anyone is interested pm me and I'll upload it to dropbox or something.
I'm gonna try to get a linaro build up and running this weekend. I've never done something like that, so it should be fun
wifi calling
wifi calling dream might still be alive?
Perhaps we'll get some nightly love tonight...
Dan Tekle said:
Perhaps we'll get some nightly love tonight...
Click to expand...
Click to collapse
I believe we will, I think we didn't make it last night because the commit to add M8 to the CM13 build list missed the deadline.
Latest build seems to be CM12.1 still. So hyped for these nightlies ! Great work everyone who is contributing!
Hope this is ok with the OP, (just tell me if you want me to remove the link or open a separate thread)
I built a copy of CM13 just now. I used the UBER Toolchain. I benches a tad bit higher in Antutu, but honestly Marshmallow is so smooth that I can't tell the difference.
Here is the link - https://dl.dropboxusercontent.com/u/25650355/cm-13.0-20151126-UNOFFICIAL-m8.zip
Question for the devs:
Is it correct the Doze is off by default? It appears that we need to set config_enableAutoPowerModes to True.
As per the Android Guidlines over here there are 2 requirements for doze.
Device implements the significant motion detector (SMD) APIs in the Sensor HAL. Devices that do not implement these APIs cannot support Doze.
Device has a cloud messaging service, such as Google Cloud Messaging (GCM). This enables the device to know when to wake from Doze.
When I run "adb shell dumpsys sensorservice | grep significant" I get -
Significant Motion| HTC Group Ltd.| version=1 |android.sensor.significant_motion| 0x0000000e | "" | type=17 | one-shot | maxDelay=0us |minDelay=-1us |no batching | wakeUp | last=<>
which would appear that the m8 does have this 'significant motion detector'
I don't know what the second requirement is referring to, is it on the app-level, that the app my have gcm to wake the device up?
Anyways, I'm making a build with Doze set to true (in framworks/res/values/config.xml) to see what happens
Alllllright, here we go, booting up now, clean flash with gapps and SuperSU!

[REFERENCE] [3.10.105] Stock kernel with upstream Linux patches - May 9th

Introduction
Hello all, I am bringing you this thread as a jumping off point to compiling kernels and working with upstream Linux. I will include a guide, some links, and some terms that will help you get started with modifying kernel source. This is also a good reference point for existing developers as I have consolidated all upstream patches into one repo. Let's get down into it!
What in the world is upstream Linux?
When an OEM sets up a device, they will pick a stable longterm branch from the Linux kernel to base their modifications around (drivers and such). In the case of Shamu, they picked 3.10.40. Currently, the Linux kernel's 3.10 is updated to 3.10.105, as you can see on kernel.org. This means that Google is "missing" versions 3.10.41 to 3.10.105. Now, why does this matter? Well, the way that the Linux kernel runs its stable branches, the only things that get merged into there are bug fixes and security updates. That's it, there are no wonky features or unstable patches. The only way you get a patch into a stable branch is by having it be in the mainline branch first. Some developers have an aversion to adding upstream because they claim it is excessive and not necessary and they are partially right since not all the patches that come in are relevant to our architecture (arm). However, upstream Linux is not unstable and by adding each version one at a time, you can verify this. Being up to date is good since you keep yourself protected from bugs and security issues that crop up. Google has been better about doing this lately with their monthly security updates but it never hurts to take matters into your own hands.
I suggest watching one of these talks given by Greg Kroah-Hartman, it is really interesting to see how the process goes:
https://www.youtube.com/watch?v=SPY0LyTU53w | https://www.youtube.com/watch?v=L2SED6sewRw
What did you do?
All I did was fetch the latest kernel.org patches from here and cherry pick them on top of the latest kernel source from Google.
I merge these patches by cherry-picking each version individually (3.10.40 to 3.10.41, 3.10.41 to 3.10.42, etc), that way I can verify that the kernel compiles fine and that there are no merge conflicts. Google will sometimes pick certain commits from upstream that are of a higher importance than others which can result in conflicts if you try to pick it again. Additionally, upstream might fix a bug one way and Google has done it another (which is not really good, Google should be pushing their fixes back to upstream so everything stays in sync).
What do I do with this?
I have created two repos below: one with the latest N security update branch with the latest upstream patches picked up on top of it (the shamu-upstream branch) and another one with a plain AnyKernel source for you to modify (shamu-stock is the most basic, shamu-decrypt contains an fstab file that will disable both forced encryption and dm-verity). You are free to fork these or base other branches on them, that's the whole point of this post. I have verified that all the patches contain no major detectable issues. I would like some credit if you do use it but it's not required since the kernel is licensed under GPL Another reason I offer this is I have seen a lot of developers picking in upstream in patch sets, so you get one single commit for an upstream version. This is detrimental as you start to add your own patches as you cannot fully tell what was modified and for what reason without the individual commits. It might look cleaner but you don't get full history which hurts you in the long run.
Links
Kernel source: https://github.com/nathanchance/shamu/tree/upstream-7.1.1
AnyKernel source: https://github.com/nathanchance/AnyKernel2/tree/shamu-stock-decrypt
Toolchain source: https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/
How to compile
This will be a quick, step by step guide on how to compile this kernel from source. By using this process, you can start to make modifications to the kernel source and make a flashable zip.
Clone the kernel source, the AnyKernel source, and toolchain source
Code:
cd ~
mkdir Kernel && cd Kernel
git clone https://github.com/nathanchance/shamu.git source
git clone https://github.com/nathanchance/AnyKernel2.git anykernel
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8 AOSP-4.8
Explanation:
First command: make sure you are in your home directory (or whatever directory you want to hold the kernel folder we are about to make.
Second command: make a Kernel folder and move into it
Third command: clone the kernel source from my repo into a folder named source
Fourth command: clone the AnyKernel source from my repo into a folder named anykernel
Fifth command: clone the Google 4.8 toolchain into a folder named AOSP-4.8
AnyKernel is the name of the zip we are going to make which allows the kernel to be flashed over any ROM.
A toolchain is a set of compiler tools that allow us to compile the kernel on any computer architecture.
Make sure you are on the correct branches
Code:
cd source && git checkout upstream-7.1.1
cd ../anykernel && git checkout shamu-stock-decrypt
Explanation:
First command: move into the source directory and checkout the branch "upstream-7.1.1", which is the necessary branch for this device.
Second command: move into the AnyKernel directory and checkout the branch "shamu-decrypt". If you don't want to disable forced encryption, use the "shamu-stock" branch.
Tell the compiler what you are are compiling
Code:
export CROSS_COMPILE=${HOME}/Kernel/AOSP-4.8/bin/arm-eabi-
export ARCH=arm && export SUBARCH=arm
make clean && make mrproper
make shamu_defconfig
Explanation:
First command: point the compiler to the location of your toolchain. If you have done anything different with the folder locations, you will need to modify the "${HOME}/Kernel/AOSP-4.8" part.
Second command: tell the compiler which architecture we are compiling for. In this case, our device is an arm device.
Third command: clean out any compiled files and remove our previous defconfig.
Fourth command: tell the compiler which options we want in the kernel using the shamu_defconfig.
A defconfig is a file that will tell the compiler which features we want in the kernel. No computer ever uses all of the options in the kernel since there are different drivers for various devices.
Make the kernel!
Code:
make -j$(nproc --all)
Explanation:
make tells the compiler to make the kernel (duh) and the -j$(nproc --all) tells the compiler to use the maximum number of cores your computer has available
Make the AnyKernel zip
Code:
cp -v arch/arm/boot/zImage-dtb ../anykernel
cd ../anykernel
zip -r9 stock-upstream.zip * -x README stock-upstream.zip
Explanation:
First command: copies the completed kernel (zImage-dtb) into the AnyKernel folder
Second command: moves us into the AnyKernel folder
Third command: makes the zip file (named stock-upstream.zip) in the AnyKernel folder.
If you ever want to do this again, run these commands and go straight to step 3:
Code:
cd source && git clean -fxd && git pull
cd anykernel && git clean -fxd && git pull
NOTE: This thread is aimed to be a breeding ground for kernel development, a place to jump off if you will. I am happy to answer how to questions about building kernels or flashing the one I have provided but this is not supposed to be a general Q&A thread. Please use another thread or create your own in Q&A if you need assistance.
Nice write up.
One suggestion though. Instead of using the current version as the branch name, you may want to just name them for the device, like "Shamu-Upstream" then tag the versions once you've gotten to the version commit. This will prevent you from having to update the thread for this command anytime that you pull in more upstream changes. It also makes it alot cleaner/easier if someone for whatever reason wanted to checkout a specific patch version as they could just checkout the tag rather than resetting back to the commit.
For lack of a better explanation, tags are sort of like sub-branches within a branch.
Very new to kernel building and AOSP in general. Followed the guide but I'm getting stuck when make mrproper is ran. Build stops and i get the error : unknown target 'mrproper' then the build fails. Any help?
The Flash said:
Another reason I offer this is I have seen a lot of developers picking in upstream in patch sets, so you get one single commit for an upstream version. This is detrimental as you start to add your own patches as you cannot fully tell what was modified and for what reason without the individual commits. It might look cleaner but you don't get full history which hurts you in the long run.
Click to expand...
Click to collapse
That's true. Some devs are lazy to commit each patch and bring up from 3.10.40 to 3.10.103 which comprises nearly 3000 patches.
neobuddy89 said:
That's true. Some devs are lazy to commit each patch and bring up from 3.10.40 to 3.10.103 which comprises nearly 3000 patches.
Click to expand...
Click to collapse
Exactly lol. It's also annoying for people looking at your source because if you had to fix anything, it is going to be lumped in with that enormous patch.
Root Wizard said:
Very new to kernel building and AOSP in general. Followed the guide but I'm getting stuck when make mrproper is ran. Build stops and i get the error : unknown target 'mrproper' then the build fails. Any help?
Click to expand...
Click to collapse
can I see a full terminal window/log showing you entering all the commands?
The Flash said:
can I see a full terminal window/log showing you entering all the commands?
Click to expand...
Click to collapse
Just logged off for the night. Will give a full report back tomorrow with pictures. Basically all the commands go good up to 'make mrproper' . 'make clean' runs fine but the 'make mrproper' goes through incuding all the aosp files for build, then ninja enters build directory, then the error 'unknown target 'mrproper' ' comes up, and the build fails.
Root Wizard said:
Just logged off for the night. Will give a full report back tomorrow with pictures. Basically all the commands go good up to 'make mrproper' . 'make clean' runs fine but the 'make mrproper' goes through incuding all the aosp files for build, then ninja enters build directory, then the error 'unknown target 'mrproper' ' comes up, and the build fails.
Click to expand...
Click to collapse
Oh you're building this into a ROM? Alright, that might make things different but yeah show me pictures tomorrow and I'll try to get you up and running.
The Flash said:
Oh you're building this into a ROM? Alright, that might make things different but yeah show me pictures tomorrow and I'll try to get you up and running.
Click to expand...
Click to collapse
Ah I guess I should have metioned that I was building an aosp rom. Thanks for your quick assistance. Will get back tomorrow.
If you're building into a rom, you just need to change the existing kernel source to this one in the xml for this device.
Yoinx said:
If you're building into a rom, you just need to change the existing kernel source to this one in the xml for this device.
Click to expand...
Click to collapse
Can you explain how to do this? First time building with aosp, not very familiar which xml file or what to change to apply the upstream patch.
Root Wizard said:
Can you explain how to do this? First time building with aosp, not very familiar which xml file or what to change to apply the upstream patch.
Click to expand...
Click to collapse
For shamu in aosp, the kernel is pulled with the main aosp source by that manifest. https://github.com/android/platform_manifest/blob/master/default.xml#L65
You world need to substitute this repo with the new one, and delete your existing kernel source. Then next time you sync the repo tool will pull it down.
On other roms it gets pulled in during the breakfast/brunch process. I can't remember exactly where that comes from, but I think that is in the vendor directory for the device, maybe.
How to modify rom manifests and such though is a little outside of this thread's topic. If you need more info I'd recommend opening a thread in the Q&A forum unless this is something that The flash wants to cover in this thread.
There are a few other caveats with doing it in the rom as well. The defconfig name would need to match what the rom build expects and you would need to go in and checkout the correct branch.
Yoinx said:
For shamu in aosp, the kernel is pulled with the main aosp source by that manifest. https://github.com/android/platform_manifest/blob/master/default.xml#L65
You world need to substitute this repo with the new one, and delete your existing kernel source. Then next time you sync the repo tool will pull it down.
On other roms it gets pulled in during the breakfast/brunch process. I can't remember exactly where that comes from, but I think that is in the vendor directory for the device, maybe.
How to modify rom manifests and such though is a little outside of this thread's topic. If you need more info I'd recommend opening a thread in the Q&A forum unless this is something that The flash wants to cover in this thread.
There are a few other caveats with doing it in the rom as well. The defconfig name would need to match what the rom build expects and you would need to go in and checkout the correct branch.
Click to expand...
Click to collapse
Ok, thanks for your help.
For those of you who have forked my kernel, you will need to revert this patch: https://github.com/nathanchance/and...mmit/0b17006c16bba286ecc9d7bacd75a3902a26835e
It causes issues with Wi-Fi and Chrome.
The Flash said:
For those of you who have forked my kernel, you will need to revert this patch: https://github.com/nathanchance/and...mmit/0b17006c16bba286ecc9d7bacd75a3902a26835e
It causes issues with Wi-Fi and Chrome.
Click to expand...
Click to collapse
It does? I have been using Chrome Beta (on wifi) since last night fine with that patch. Maybe its just a matter of time before things start failing. Thanks anyway, will keep a heads up.
Root Wizard said:
It does? I have been using Chrome Beta (on wifi) since last night fine with that patch. Maybe its just a matter of time before things start failing. Thanks anyway, will keep a heads up.
Click to expand...
Click to collapse
If you toggle Wi-Fi, start flipping through pages in Chrome, and toggle Wi-Fi again, it will reboot. Oddest issue I have ever dealt with.
Sent from my Nexus 6P using XDA Labs
The Flash said:
If you toggle Wi-Fi, start flipping through pages in Chrome, and toggle Wi-Fi again, it will reboot. Oddest issue I have ever dealt with.
Click to expand...
Click to collapse
Interesting, will look into this. I also have been getting reboots from searching forums in xda labs app. Logcat says a ton of "PowerHAL_touch_boost failed to send: Connection refused" before reboots. Is this what is happening to you?
Root Wizard said:
Interesting, will look into this. I also have been getting reboots from searching forums in xda labs app. Logcat says a ton of "PowerHAL_touch_boost failed to send: Connection refused" before reboots. Is this what is happening to you?
Click to expand...
Click to collapse
No I haven't had that happen but that error shouldn't cause reboots.
The Flash said:
No I haven't had that happen but that error shouldn't cause reboots.
Click to expand...
Click to collapse
Huh, odd
Github and the kernel in the OP are updated to 3.10.104.

[GUIDE]Working with Android Kernel from Scratch

Introduction
I am writing this guide as I was unable to find a well-documented thread over XDA (there are just a lot of them). In case there is anything that concerns this guide, feel free to ask in this thread. I expect you to know the basics of Linux, GIT, Android. Please look over some guides in the forum in case you are not familiar with them. In case you want to contribute to this, feel free to do so. I welcome everyone's contribution to be it fixing my derp, pointing a mistake or adding a new section.
Links to some nice documentations:
Git Documentation
Linux Kernel Newbies
How to take logs in Android
How to get an Android kernel up to date with linux-stable
Checking Current CAF Tag of the Kernel
We will be using best_kernel for this purpose, whose aim is to compare your current kernel source code with different CAF tags and select the best possible match using git diff.
Clone/Download your kernel repo and commit your changes(if not already committed) as best_kernel depends upon git diff to compare changes.
Depending upon your kernel version, add required CAF kernel repo as remote and fetch it. best_kernel will use this fetched data to compare changes.
After fetch is done, run best_kernel. It should run automatically if you have placed dotfiles in the $BIN directory and have the necessary dependencies installed.
best_kernel will compare changes and will provide results based on that. However, depending on the number of tags, it will take time. A lot of time, so go and grab a cup of coffee till then.
A Dummy Example:
Downloading stock kernel source code from OEM’s website
Code:
wget http://nokiaphones-opensource.azureedge.net/download/phones/Nokia6.1_V2.22J.tar.bz2 && tar xvjf Nokia6.1_V2.22J.tar.bz2 && cd kernel
Adding and committing all files due to lack of a .git dir.
Code:
git init && git add --all && git commit -m "Initial Commit"
As the kernel source code version is 4.4, I will add 4.4 remotes from CAF and fetch it.
Code:
git remote add caf https://source.codeaurora.org/quic/la/kernel/msm-4.4/ && git fetch caf
After fetch, I will check for the current CAF tag using best_kernel. As my device platform is sdm660 and CAF has been releasing sdm660 tags as sdm660.0, I will be using it as an argument in best_kernel. This will ensure that best_kernel doesn’t waste time checking CAF Tags of other platforms and will speed up the process considerably.
Code:
best_kernel "*sdm660.0"
RESULT will be something like this:
Code:
Best match TAG: LA.UM.6.2.r1-06900-sdm660.0 Lines changed: 177924
What is CAF/Code Aurora | CodeAurora Android Releases Page | CAF Kernel Sources​
Creating/Importing GIT History for Kernel Source
A lot of OEMs release kernel sources in a compressed format excluding the .git dir which results in no git history. Creating or it's better to say to import one is simple and easy.
Download and check the current CAF tag of your Android kernel source.
Note: If your chipset is not Qualcomm, you should visit Linux Kernel Source or AOSP's Kernel Common and use that as a base while checking out to the specific version of your kernel source you are going to copy-paste. Qualcomm devices can also use that as a ref but I will recommend them to use CAF source.
Based on that CAF tag, download the respective kernel repository from CAF and checkout for that specific tag.
Copy and paste your downloaded kernel source (with no history) over the CAF one (which has the history of that CAF tag).
Commit the changes.
You have accomplished creating/importing history.
A Dummy Example:
My current CAF tag is LA.UM.6.2.r1-06900-sdm660.0.
Therefore, cloning kernel source from CAF and checking out for this tag while creating a new branch named rebase.
Code:
git clone https://source.codeaurora.org/quic/la/kernel/msm-4.4/
cd msm-4.4/
git checkout tags/LA.UM.6.2.r1-06900-sdm660.0 -b rebase
Now, I will copy-paste the kernel source that I downloaded from OEM's website over the CAF one. Assuming the downloaded kernel is in ~/Downloads/kernel and CAF kernel source is in ~/msm-4.4 directories.
Code:
#Renaming the dir so, that it will get merged while copying due to similar names
mv kernel/ msm-4.4/
cp -avr msm-4.4/ ~/msm-4.4
cd ~/msm-4.4
git status
git commit -m "Import Nokia Kernel Source"
Keep in mind that a .gitignore is generated which can and will ignore files during commit which were not getting ignored earlier due to its absence. In case during compilation you encounter any error stating about missing file, add it forcefully and commit again.
Remember, its always good to split that one big commit into small parts. It's helpful when you start rebasing your kernel usually when new CAF Tag for new android versions come out. Solving a few conflicts ina lot of commit is much better than solving a load of them in one. It also gives you a chance to easily diff on websites like GitHub so that you can figure what's a particular line is doing.
Doing that is also easy. Just reset head for a particular folder like driver/touchscreen and commit them separately. Check git rebase documentation which will help you with this.
Upstreaming your Kernel
Merging upstream versions is a really good thing. It brings in security patches, stability, new features and much more. The usual and best way is to visit Linux Kernel Source and check if there are upstream updates available. If yes, start merging them in your kernel source one by one.
Note: If your chipset is not Qualcomm, you should visit Linux Kernel Source or AOSP's Kernel Common and use that as a base. Qualcomm devices can also use that as a ref but I will recommend them to use CAF source.
A Dummy Example:
Assuming my current kernel version is v4.4.205, I will fetch v4.4.206 from Linux Kernel Source and merge that. I can also fetch and merge different branches from CAF Source which are usually upstreamed with Linux-stable (for example, aosp/upstream-linux-4.4.y branch)
Code:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git v4.4.206
git merge FETCH_HEAD
Fix conflicts if you get some. What to keep and what not is a question that depends upon the device to device. Usually, you should compare local changes and upstream and try to figure out what could be the best way to fix it. I will advise to check the history of that file in upstream and see which commit caused that conflict and why. You can also check similar merges by other same kernel versions to see if they had the same conflict and how they fixed it.
I will also advise merging AOSP's kernel/common and new CAF upstream tags (Only QCOM devices should merge new CAF tags) regularly when available. The reason is pretty simple. There are commits that get merged in AOSP like which improves performance or other stuff which doesn't get merged in Linux Kernel Source. This way you can get the benefit from all sources. This, however, is not pretty easy and might result in a huge number of conflicts considering if OEM has modified the source a lot from upstream.
CAF also hosts f2fs and other file system changes on their servers. Merge it if you want and use it.
Compiling Standalone Kernel
Compiling a kernel standalone requires you to have a compatible toolchain like GCC or Clang. The best way to figure out which one suits your need is testing and debugging. The standard AOSP GCC toolchains are recommended for devices with old kernels, to begin with, while newer ones can use clang with backports or upstream merges. In case you want to compile with clang, checking out android-kernel-clang is a good way, to begin with.
Compiling standalone kernels can give a lot of missing headers errors/warnings. This is due to not compiling it in a ROM environment. This can be easily fixed either by correcting paths of those header files being included or creating an out dir manually and using it as output. You can also use this commit to do that automatically.
Clone your kernel source and desired toolchain(s). Export arch and cross compiler arguments. Choose the desired defconfig to make and compile.
A Dummy Example:
I will clone the kernel source and toolchain in the same dir and export the following arguments in kernel source root dir.
Code:
export ARCH=arm64
export CROSS_COMPILE=/media/hdd/aayush/kernel/aarch64-elf-gcc/bin/aarch64-elf-
make nokia_defconfig
make -j$(nproc --all)
Kernel conflicts might occur. You can search on GitHub to check if someone has fixed that already, otherwise fix the issues yourself. Comparing code with upstream repositories is also a way to figure out the differences. Choosing defconfig can be a bit tricky if you are doing bringups. I recommend pulling the current defconfig from your device itself. Its usually by the name of config.gz in /proc/ of your device.
Links to some cross compiler
GNU Toolchain by ARM
DragonTC
GNU and Linaro
Working with TWRP from Scratch
This post is supposed to help you with building TWRP from scratch for the first time if you are a newbie. There are some good resources already available for that over the web, specially XDA. I am linking some good ones below that you can read for more info on it.
How to compile TWRP Touch Recovery
The aim of a device tree is to contain the device-specific code for the build you are doing. In this case, as we are building TWRP which is a custom recovery, only flags relating to building TWRP and a normal recovery are enough to build it. Adding system specific codes like partition sizes for the system, vendor, boot and other doesn't contribute anything. An example tree can be begonia's tree hosted on TeamWin's org maintained by me.
Now coming to the device you want to build TWRP for, you will the following :
- A working kernel
- Device-specific binaries/libraries etc required for features like encryption which heavily differs on OEM implementation
AB devices need an extra commit in their kernel to make 'fastboot boot' command work: init: initramfs: disable do_skip_initramfs . Additionally if your device ships a separate DTBO image you will also need the following flag and the DTBO image: begonia: Build DTBO image into recovery
Newer devices are nowadays coming with 'fastboot boot' command disabled. Nokia 8.1 is an example of it. To make it work again, you might need to tweak bootloader which can prove to be risky.
Now coming to creating a device tree for TWRP. The very first step is to look out if someone else has booted TWRP on a similar SOC, OEM or same device. It can be used as a reference to fix similar/OEM related bugs and hacks quickly. In case, one doesn't exist, just pick a latest one from Teamwin's Github org for the android version you are compiling for.
Reserved (2)
Wew many thanks,
Thanks
Have just started exploring xda chef central.
I cam across this guide, really ahlepful Hope you complete it soon.
Updated the thread. Fixed formatting, links and added a new section.
How To Unofficially Unlock Bootloader For LG G8
We all know LG G8 is a android device. It's open source. But I recently bought a LG G8 only but it's locked to sprint sim . No any sim work. I can't unlock bootloader. I can't root. I can't flag firmware or install custom recovery. Anyone know here , how to totally remove firmware and but another firmware ? Why we can't build a method to do that?
TheImpulson said:
Updated the thread. Fixed formatting, links and added a new section.
Click to expand...
Click to collapse
Can you create a guide for, "How to Rebase an Android Kernel". Like from Android 9 to Android 10?
thanks for this guide bro
While using best caf kernel, Prefix of the caf tag should start with a -
For example, "*- sdm660.0"
@theimpulson
Hey there,
Am getting this error del.dog/megupebinu.txt
While trying execute best_kernel script
This is helpful, thanks mate
@theimpulson I had a question: (Before reading this guide) I had already downloaded stock Samsung sources and git init push the thing to my Github. So will anything bad happen if I did it this way or do I have to rebase it with CAF?
Also what are the benefits of these so-called CAF based kernels everywhere? Improved performance? Cuz I really wanted to compile my own kernel specifically for performance with WSL-2 (shameless plug)
Thanks in advance and sorry if the @ bothered you,
Ishaq
NullCode said:
@theimpulson I had a question: (Before reading this guide) I had already downloaded stock Samsung sources and git init push the thing to my Github. So will anything bad happen if I did it this way or do I have to rebase it with CAF?
Also what are the benefits of these so-called CAF based kernels everywhere? Improved performance? Cuz I really wanted to compile my own kernel specifically for performance with WSL-2 (shameless plug)
Thanks in advance and sorry if the @ bothered you,
Ishaq
Click to expand...
Click to collapse
The existing sources are fine, no issues if you are fine without any git history.
SOC specific optimizations, bug fixes etc. Nothing more. So, yeah, if you want SOC specific optimizations, performance improvements, you will want to merge latest CAF tags for your kernel.
theimpulson said:
The existing sources are fine, no issues if you are fine without any git history.
SOC specific optimizations, bug fixes etc. Nothing more. So, yeah, if you want SOC specific optimizations, performance improvements, you will want to merge latest CAF tags for your kernel.
Click to expand...
Click to collapse
thanks a lot for the reply! Another thing, because of your suggestion I tried to Import the git history (and i succeeded). Then I wanted to upload these sources to my own Github, which I can't figure out how to do. It only gives Github repo for the place where it came from (msm-3.18). Help me please
Edit: The guides which I found for merging CAF tags say that my base also has to be CAF (which it isn't) and this guide here basically does not work

Categories

Resources