Related
Hey Guys, Many People Ask About How To Start Compiling ROM And I Am Here With Some Pretty Neat Guides By Some Awesome Developers To Make Your Compiling Journey Way More Easy, If You Are A N00b Back Out(Just Kidding) It Is Still A Bit Complicated At First But You Get The Hang Of It! There Guides Are Not Just For Android But Also For Other Devices!
Requirements:-
A Linux PC (64bit)(Ubuntu Prefered)
Minimum 4 gigs of RAM (Recommended RAM is 8 Gigs And Above)
Make Sure You Have At-least Unlimited Data Plan And A High Speed Network (Coz You Have To Download Repos Over 15 Gigs)
Guides:-
The Best To Start Guide - [GUIDE][COMPLETE] Android ROM Development From Source To End Thanks to @jackeagle
Basics And XDA's - How to Build an Android ROM
The Reference Tally Guide I Would Recommend (Like It Too) - [GUIDE][Step-by-Step] Build ROM from source Thanks to @Haze028
ROM Specific Guides :-
Cyanogen-mod - [GUIDE] Compile CM from source, source basics & FAQ - Very detailed and noob friendly Thanks to @galaxyfreak
PAC Rom - [Guide]How to Compile PAC Rom Thanks To @iurnait
AOKP - [GUIDE] The Comprehensive AOKP Building Guide Thanks to @TheByteSmasher
Paranoid Android - [GUIDE][AOSPA:v3.+] How to Compile AOSPA from Source : + Support and Maintenance Thanks to @gokussjx
Android One Specific Device Tree, Kernel And Vendor Sources Links:- Thanks to @varun.chitre15
Device Tree - https://github.com/varunchitre15/android_device_google_sprout
Vendor - https://github.com/varunchitre15/android_vendor_google_sprout
Kernel Source - https://github.com/varunchitre15/android_kernel_mediatek_sprout
Code To Clone Repo :
git clone https://github.com/varunchitre15/android_device_google_sprout -b cm-11.0 device/google/sprout
git clone https://github.com/varunchitre15/android_kernel_mediatek_sprout -b cm-11.0 kernel/google/sprout
git clone https://github.com/varunchitre15/android_vendor_google_sprout -b cm-11.0 vendor/google/sprout
Click to expand...
Click to collapse
For Video Tutorials :-
Visit Post #2
IF REPO SYNC FAILS[FIX] Repo Sync Failed Due To Fetch Errors!
Detailed Video Tutorials On Building Custom ROMs:-
Part 1 :-
Part 2:-
Reserved
Need Help
Is it possible to compile ROMs with Windows 7 ?
SidLoveNuts said:
Is it possible to compile ROMs with Windows 7 ?
Click to expand...
Click to collapse
No,you will need a Linux 64bit machine to compile android from source
SidLoveNuts said:
Is it possible to compile ROMs with Windows 7 ?
Click to expand...
Click to collapse
You can dual boot ur PC such that u can select between Win and Linux
Dear OP, please post/request varun to post a detailed guide for compiling CM for noobs. It will be greatly helpful for budding developers. Thanks .
arunmcops said:
Dear OP, please post/request varun to post a detailed guide for compiling CM for noobs. It will be greatly helpful for budding developers. Thanks .
Click to expand...
Click to collapse
Visit Here For Detailed Guide
It is usefull and same for all Rom's
I already have CM11 branch, want to try CM12 branch . Question is - Can I reuse my existing CM11 sources ? How to do that ?
ash1425 said:
I already have CM11 branch, want to try CM12 branch . Question is - Can I reuse my existing CM11 sources ? How to do that ?
Click to expand...
Click to collapse
No,You need to sync the new branch in order to build CM12
DC07 said:
No,You need to sync the new branch in order to build CM12
Click to expand...
Click to collapse
I think its possible. JBQ responded with positive answer on google groups. Please have a look.
https://groups.google.com/forum/?hl=en#!topic/repo-discuss/yUslU8J76Rs
Code:
You can re-run repo init in your existing client. You can skip the -u parameter to use the same server, and just specify -b.
You can make a local copy of your client first, so that you can have both a kitkat and a lollipop client.
JBQ
ash1425 said:
I think its possible. JBQ responded with positive answer on google groups. Please have a look.
https://groups.google.com/forum/?hl=en#!topic/repo-discuss/yUslU8J76Rs
Code:
You can re-run repo init in your existing client. You can skip the -u parameter to use the same server, and just specify -b.
You can make a local copy of your client first, so that you can have both a kitkat and a lollipop client.
JBQ
Click to expand...
Click to collapse
That's what I said. -_- Check my reply properly.I said that you need the new branch in order to build CM12 and so did JBQ.
My question was "Can i reuse my existing CM11 sources". I might have framed it wrong. Anyways, i have started sync and i can confirm that my download size is minimized a lot.
ash1425 said:
My question was "Can i reuse my existing CM11 sources". I might have framed it wrong. Anyways, i have started sync and i can confirm that my download size is minimized a lot.
Click to expand...
Click to collapse
--reference={whereever the predownloaded rom source is}
Use This During Repo Init Before -u
Kunal.Kene.1797 said:
--reference={whereever the predownloaded rom source is}
Use This During Repo Init Before -u
Click to expand...
Click to collapse
You think that will work for 5.0?
##W4TCH0UT## said:
You think that will work for 5.0?
Click to expand...
Click to collapse
Yeah...using it it will use some pre-downloaded art compilers, etc! it won't make a big difference but it will!
Kunal.Kene.1797 said:
Yeah...using it it will use some pre-downloaded art compilers, etc! it won't make a big difference but it will!
Click to expand...
Click to collapse
You can't use cm11 sources to download cm12...lol. EVERY AND EACH repo is different in cm12.
##W4TCH0UT## said:
You can't use cm11 sources to download cm12...lol. EVERY AND EACH repo is different in cm12.
Click to expand...
Click to collapse
Thanks for this
I was trying to explain this itself from long.
##W4TCH0UT## said:
You can't use cm11 sources to download cm12...lol. EVERY AND EACH repo is different in cm12.
Click to expand...
Click to collapse
Okay!!!! thx!
ubuntu 14.10 compatible
I'm having problem dual boot so can run ububtu on virtual application by running IOS file??
Before this is flagged as duplicate thread. Or a simple link to the source code of raymanfx source code. Or even the s6 edge plus port.
If I compile just using source code. It doesn't boot, I've tried all I have that I'm limited at.. some driver error Possibly narrowed it down to it being the defconfig.
Need the missing elf file and a working defconfig. (I am trying to fix some bugs until a more suited release is made..
Thank you
@RaymanFX @Ducter
And anyone else with knowledge
LiL_Assassin said:
Before this is flagged as duplicate thread. Or a simple link to the source code of raymanfx source code. Or even the s6 edge plus port.
If I compile just using source code. It doesn't boot, I've tried all I have that I'm limited at.. some driver error Possibly narrowed it down to it being the defconfig.
Need the missing elf file and a working defconfig. (I am trying to fix some bugs until a more suited release is made..
Thank you
@RaymanFX @Ducter
And anyone else with knowledge
Click to expand...
Click to collapse
Have you tried removing the 'OMX' folders from the system lib / lib64 folder? After you compiled the build.
Battlehero said:
Have you tried removing the 'OMX' folders from the system lib / lib64 folder? After you compiled the build.
Click to expand...
Click to collapse
Sorry man my apologies. I am trying the kernel side of things not the actual rom
LiL_Assassin said:
Sorry man my apologies. I am trying the kernel side of things not the actual rom
Click to expand...
Click to collapse
What device variant do you have?
Battlehero said:
What device variant do you have?
Click to expand...
Click to collapse
My friend has c and I have I
LiL_Assassin said:
My friend has c and I have I
Click to expand...
Click to collapse
Upload the build and I'll have a gander.
Battlehero said:
Upload the build and I'll have a gander.
Click to expand...
Click to collapse
I sent you a pm.
Battlehero said:
Upload the build and I'll have a gander.
Click to expand...
Click to collapse
Though if the pm or this doesn't suit you. Here's an upload for you man. We could be doing things wrong.. But we would love the insight. (We think this is the furthest we have managed)
https://www.dropbox.com/sh/oaenmo464fxoycz/AAD1uk-18MaNp0fQVyyjTvPAa?dl=0
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/hydrogen-m-oss
Although the source tree name is hydrogen-m-oss, MI's staff Ivan says hydrogen and helium shares the same kernel source.
is this for real?? man I can't believe my eyes,this means real development, more ROMs...maybe I should stop dreaming and have some expert confirm,
@nijel8
@ajsmsg78
:good:
Hmm hope it's the real deal..
Sent from my MI MAX using XDA-Developers mobile app
laolang_cool said:
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/hydrogen-m-oss
But seems only hydrogen source is released
Click to expand...
Click to collapse
Yes its kernel source for hydrogen (android M kernel).
Now we can have better CM13 and roms based on it.
And we can compile android N also.
Confirmed with Santosh M sir (compiled android N for redmi note 3 first).
I am very much noob at compiling, lets hope developers come up with great things.:good:
Nice to hear it, if it is true...
I hope Helium will coming soon.
小米Max*全网通版*3GB/64GB*银色 - Resurrection Remix 5.7.4 build 6.10.28 by ajsmsg78
Yep it's out... Too bad I can't do anything for two more months...
Looking forward to AOSP or slim for max. too bad only hydrogen's source is out, mine is helium...
Hmmm, i will back ?
nijel8 said:
Yep it's out... Too bad I can't do anything for two more months...
Click to expand...
Click to collapse
how come?
please more roms for xiaomi max hydrogen KERNEL SOURCE IS OUT
I asked MI's staff who is also rom developer Ivan, he says hydrogen and helium shares a same kernel source.
laolang_cool said:
I asked MI's staff who is also rom developer Ivan, he says hydrogen and helium shares a same kernel source.
Click to expand...
Click to collapse
That's probably true looking at the config files... The max cpu's are set to 8.
BTW I managed to build it after fixing some compile errors but it doesn't boot... I guess .config needs tweaking but I am not a kernel expert ... Also /arch/arm64/boot/dts/qcom directory is missing and to get it to compile I had to borrow stuff from /arch/arm/boot/dts/qcom which probably is wrong... Anyway no success...
nijel8 said:
That's probably true looking at the config files... The max cpu's are set to 8.
BTW I managed to build it after fixing some compile errors but it doesn't boot... I guess .config needs tweaking but I am not a kernel expert ... Also /arch/arm64/boot/dts/qcom directory is missing and to get it to compile I had to borrow stuff from /arch/arm/boot/dts/qcom which probably is wrong... Anyway no success...
Click to expand...
Click to collapse
Ivan confirmed helium uses the same config file hydrogen_user_defconfig, and no file is missing... dts in arm64/ and arm/ linked to a same directory.
This is incredible news! Fingers crossed this will lead to some great new ROMs!
Let's hope this leads to some custom kernels
It quits with
Code:
drivers/video/msm/msm_dba/msm_dba.c:25:30: fatal error: msm_dba_internal.h: No such file or directory
for a weird reason here. The file is there, but it quits.
Edit: It works after changing #include <msm_dba_internal.h> to #include "msm_dba_internal.h" in msm_dba.c, but just like nijel8 stated it won't finish because of dts.
TEKME said:
It quits with
Code:
drivers/video/msm/msm_dba/msm_dba.c:25:30: fatal error: msm_dba_internal.h: No such file or directory
for a weird reason here. The file is there, but it quits.
Edit: It works after changing #include <msm_dba_internal.h> to #include "msm_dba_internal.h" in msm_dba.c, but just like nijel8 stated it won't finish because of dts.
Click to expand...
Click to collapse
Copy /arch/arm/boot/dts folder to /arch/arm64/boot/ and /include/dt-bindings to /arch/arm64/include keeping all already existing files(don't overwrite) and it will compile but without cpu_ctl.ko and wifi.ko modules.
nijel8 said:
Copy /arch/arm/boot/dts folder to /arch/arm64/boot/ keeping all already existing files(don't overwrite) and it will compile but without cpu_ctl.ko and wifi.ko modules.
Click to expand...
Click to collapse
From Ivan: cpu_ctl.ko is private. And wifi.ko doesn't exist in kernel/, it's in vendor/qcom/opensource/wlan/ , so MI doesn't release their module source(will not in the future I think...)
We need to get the wifi module source from qcom i.g. https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/wlan/qcacld-2.0/, but not sure if max uses qcald-2.0 or not.
Is it possible to use Kenzo sources to fill in the gaps? I swapped my Kenzo for a Hydrogen and I'm loving this huge phone, although MIUI is still a bit clunky. The Nougat AOSP and CM ROMs for Kenzo are pretty much ready for daily use, with camera support and VoLTE being a bit buggy right now.
Both Kenzo and Hydrogen devices use msm8952 with fpc1020 fingerprint sensors, I'm not sure about the camera sensors though.
Since OnePlus 8 got LineageOS, I figure it's time for us to do the same. But first we should do some kernel compilation.
I've compiled the kernel successfully but it is NOT booting, this is for people who know more than me for these newer chipset which they can get the kernel message.
Here's the official kernel source i forked: https://github.com/TipzTeam/android_kernel_xiaomi_sm8250
Here's a link to the compiles of the kernel:
https://androidfilehost.com/?w=files&flid=314140
Good luck!
who has tried ?? what are the differences from official kernel??
aleksgiab said:
who has tried ?? what are the differences from official kernel??
Click to expand...
Click to collapse
I tried, here's what I found:
1. Doesn't boot
Here's the differences:
1. Booting
2. Dts
3. Drivers?
it's still in the early stages so i won't experiment because i'll take it brick I'll wait to try other users to have a good time too
aleksgiab said:
it's still in the early stages so i won't experiment because i'll take it brick I'll wait to try other users to have a good time too
Click to expand...
Click to collapse
I tried on my own and doesn't boot but I don't know how to get kmsg
TipzTeam said:
I tried on my own and doesn't boot but I don't know how to get kmsg
Click to expand...
Click to collapse
then don't experiment ... so as not to spoil it
aleksgiab said:
then don't experiment ... so as not to spoil it
Click to expand...
Click to collapse
You don't understand. I am trying to get people who know more than me with these new chipsets which they can pull boot logs.
What VM or software are you using to compile kernel?
Link?
badaas said:
What VM or software are you using to compile kernel?
Link?
Click to expand...
Click to collapse
I use Ubuntu 18.04 on a real computer.
is it possible to make a gsi without compiling the kernel?
404
TipzTeam said:
I use Ubuntu 18.04 on a real computer.
Click to expand...
Click to collapse
I've just compiled the kernel for the LMI (POCO F2 Pro) and it's 13.3mb image.gz-dtb file.
I have the same issue it doesn't boot, complied without errors.
I first did the compressed image, it's 13.3mb, next I did the uncompressed image and it's 37mb
It finally happened the source code is released
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/spes-r-oss
Leaving this also as a place for first discussions. So, go for it.
NeoPreacher said:
It finally happened the source code is released
https://github.com/MiCode/Xiaomi_Kernel_OpenSource/tree/spes-r-oss
Leaving this also as a place for first discussions. So, go for it.
Click to expand...
Click to collapse
Finally!!!
Let's gooooooooooo!!!!!!!!!
It only took them a year and three months to release it.
Oh god...
NeoSDAP said:
It only took them a year and three months to release it.
Oh god...
Click to expand...
Click to collapse
lmao
Snapdragon_Mid_2020.SPF.1.0.1R_r00024.0
lol it makes even more sad.
Does the Kernel being for Android 11 mean its useless for us? Can Android 12/13 roms not be made with it? I really just wanted working doubletap2wake, would the Android 11 Kernel make that happen? Thank you!
Zylam Marex said:
Does the Kernel being for Android 11 mean its useless for us? Can Android 12/13 roms not be made with it? I really just wanted working doubletap2wake, would the Android 11 Kernel make that happen? Thank you!
Click to expand...
Click to collapse
No; sure; works already flawless in PA, but sure why not. There are others problems eg. missing drivers in source and missing devs in group. Fyi: many people using a13 custom rom with a11 stock kernel actually on rn11
nice. they can now close 1k issues regarding spes kernel. hahaha
pulsar said:
nice. they can now close 1k issues regarding spes kernel. hahaha
Click to expand...
Click to collapse
There are some people fixing the issues with source already!
NeoPreacher said:
No; sure; works already flawless in PA, but sure why not. There are others problems eg. missing drivers in source and missing devs in group. Fyi: many people using a13 custom rom with a11 stock kernel actually on rn11
Click to expand...
Click to collapse
Oh wow really, tape2wake works great in PA? I have tried almost all roms but PA. Thank you for letting me know, a shame the Kernel is missing drivers and such. I wonder why Xiaomi is trying to make sure the Note 11 is never developed for, it's such a good phone with a custom rom.
BerserkSlayer said:
There are some people fixing the issues with source already!
Click to expand...
Click to collapse
Haha I think Pulsar was referring to Xiaomi's github page where there would be like 10 posts a day asking for Spes kernel
tap2wake also works on PixelExperience, FWIW.
EDIT: board_id.h is present in the same directory, not in include/. \
I've tried compiling the kernel from Xiaomi's sources and stumbled across an error about a missing header file:
Code:
drivers/misc/st21nfc.c:43:22: fatal error: board_id.h: No such file or directory
#include <board_id.h>
^
compilation terminated.
make[2]: *** [scripts/Makefile.build:338: drivers/misc/st21nfc.o] Error 1
make[1]: *** [scripts/Makefile.build:642: drivers/misc] Error 2
This file board_id.h does not exist in the include/ folder. Perhaps Xiaomi uploaded incomplete sources?
aureljared said:
tap2wake also works on PixelExperience, FWIW.
EDIT: board_id.h is present in the same directory, not in include/. \
I've tried compiling the kernel from Xiaomi's sources and stumbled across an error about a missing header file:
Code:
drivers/misc/st21nfc.c:43:22: fatal error: board_id.h: No such file or directory
#include <board_id.h>
^
compilation terminated.
make[2]: *** [scripts/Makefile.build:338: drivers/misc/st21nfc.o] Error 1
make[1]: *** [scripts/Makefile.build:642: drivers/misc] Error 2
This file board_id.h does not exist in the include/ folder. Perhaps Xiaomi uploaded incomplete sources?
Click to expand...
Click to collapse
yes
Much easier to compile this kernel using Clang rather than GCC. Still getting used to it, it's been a good while since my last kernel compile, haha.
Does anyone know how to build a new boot image by hand? I have a working boot.img for PixelExperience and I'd like to replace the kernel with one that I built for testing, but I'm not sure if I should still use mkbootimg like with older Android devices as this is the first time I'll be dealing with a device that uses dtb/dtbo files. Any insights would be welcome.
aureljared said:
EDIT: board_id.h is present in the same directory, not in include/.
Click to expand...
Click to collapse
Not an expert here. What exactly are the benefits of this? What does it mean for custom ROM development?
SAM209 said:
Not an expert here. What exactly are the benefits of this? What does it mean for custom ROM development?
Click to expand...
Click to collapse
For one, it is theoretically easier to keep the device up to date without having to wait for Xiaomi's updates. Some changes that come with Android's monthly security patches are made to the kernel, for example, and having the kernel source code means we can apply those patches faster than if we were to wait for updated kernel builds from Xiaomi.
Some ROMs like LineageOS also require kernels to be built from source (i.e., not prebuilt) for a device to be granted official status.
Hello,
Can someone guide me on how to install that kernel on redmi note 11 (Pixel Experience custom os)
Already installed twrp 3.7.0 but gives me some errors all the time like Invalid zip file format!.
I download it as zip from github and put it in twrp folder and install it from there.
Thanks in advance
jasmin811 said:
Hello,
Can someone guide me on how to install that kernel on redmi note 11 (Pixel Experience custom os)
Already installed twrp 3.7.0 but gives me some errors all the time like Invalid zip file format!.
I download it as zip from github and put it in twrp folder and install it from there.
Thanks in advance
Click to expand...
Click to collapse
There's nothing to flash here. Only the link to the kernel source. There's still some work to do for a flashable kernel (compiling eg). Also there are drivers missing in the source it seems. What you tried was flashing the uncompiled kernel source package i guess and that.. doesn't work
Oh ok,I though it was finished already.