Related
Hello!
This is a thread where potential developers can get kernel and platform source code for Samsung Galaxy S I9070 Advance, and other info. I will try to update this until we will have first custom rom ready. I encourage everybody with some experience with android development, to share their knowledge with other users here. Please if any of you will make any progress in rooting, making recovery or developing custom rom, to write here in this thread or even start a new one if some major break trough will be made.
Ok so here are the links to sources (I don't know the diference between those to, but I guess it is region related):
GTI9070_GB_OpenSoruce
GTI9070_LA_GB_OpenSoruce
All sources, can be found HERE.
In the attachment you can also find some other info I've pulled from my phone, which used to be rooted, cause I had some test version. I hope all this stuff will help us get root access, custom recovery and last but not least a whole bunch of custom roms.
NOW LETS HACKING AND DEVELOPING BEGIN!!!
One more thing, PLEASE take a minute to VOTE for this phone to get its own forum section here on XDA. Just make a post in THIS THREAD. The device is not in the poll yet, so you must write a post in thread. THANK YOU!
We've made a step into a right direction with a lot of help from forum I've made a working root method!
I've hard bricked my phone, so I am off the developemnt from this phone, only if by some chance I get a replacement. Sorry guys, in spirit of developing I've killed my phone .
I wish I was better at kernel development... I would love some development for this phone!
Sent from my GT-I9070 via Tapatalk 2
I've somehow managed to configure linux and pulled andorid sources from the repo, now I have to figured out how to compile a kernel. I have much to learn but if nobody else will give it a try, maybe I will succeed.
yeah...we as new wannabe devs are learning back the basics...i'm still trying to figure out what to do about the kernel source...afraid of bricking my phone in the process... hehe.. but all the kernel sources for all regions has been released...
kilsmap said:
yeah...we as new wannabe devs are learning back the basics...i'm still trying to figure out what to do about the kernel source...afraid of bricking my phone in the process... hehe.. but all the kernel sources for all regions has been released...
Click to expand...
Click to collapse
Dear friend. I come from China, now I already have a good i9070, I can help you with your test, you can send to my mailbox [email protected]
hmmm...qzem, im getting stuck at initramfs...how do we get these for our phones? because the kernel can only be flashed safely when it is compiled with initramfs files from our phone... and for the phone to get custom recovery, i think they will also need initramfs files...
kilsmap said:
hmmm...qzem, im getting stuck at initramfs...how do we get these for our phones? because the kernel can only be flashed safely when it is compiled with initramfs files from our phone... and for the phone to get custom recovery, i think they will also need initramfs files...
Click to expand...
Click to collapse
Same thing here. I have no idea how to get those, been asking around the forum an searching, but for now all the directions indicates that you need to have root access to get iniramfs. That really sucks...
hahaha...from this point of view, all Samsung phones after Galaxy S Advance will be quite hard to root... I'm waiting for the Galaxy SIII to launch, and for someone to root it... Maybe then we will be able to use the same way to root our phone... If only we can see what's inside our kernel.bin.md5... I'm sure the files we needed are in there...
the initrams? u mean ramdisk?
grab stock boot.img and extract from it.
the stock boot.img can be grabbed from odin flashable stock rom.
an0nym0us_ said:
the initrams? u mean ramdisk?
grab stock boot.img and extract from it.
the stock boot.img can be grabbed from odin flashable stock rom.
Click to expand...
Click to collapse
Yeah.. We have the stock rom, but can't figure out which one should we extract the boot.img from.. There was system.img.md5, cache.img.md5, hidden.img.md5, modem.bin.md5, and kernel.bin.md5... So which one? My suspicion lies to the kernel.bin, but I have no idea how to extract it..
Sent from my GT-I9070 using XDA
I have compiled a stock kernel from source code, so I got zImage file, now I have to find out how to build boot.img from this. I will contiue tommorow I hope I am close to the solution! Mabe few days to crack this baby .
qzem said:
I have compiled a stock kernel from source code, so I got zImage file, now I have to find out how to build boot.img from this. I will contiue tommorow I hope I am close to the solution! Mabe few days to crack this baby .
Click to expand...
Click to collapse
Good luck!
Hope you get to a solution soon
I can't work on it as I currently don't have a phone to test on, sent it in for repairs.
qzem said:
I have compiled a stock kernel from source code, so I got zImage file, now I have to find out how to build boot.img from this. I will contiue tommorow I hope I am close to the solution! Mabe few days to crack this baby .
Click to expand...
Click to collapse
Have u tried flashing it directly to the phone? You don't have to make it into a boot.img to flash it.. Because I'm afraid that the zImage will be useless if not paired with working initramfs.. Compiling the kernel is quite straightforward, the thing is to get the initramfs to turn the kernel insecure.. There are also scripts to extract initramfs from zImage, but I haven't had time to test it..
Sent from my GT-I9070 using XDA
Ok what exactly is in initramfs, that is what I am trying to figured out? I've recompiled some other samsung boot.img with dsixda kitchen, and I got zImage and a folder caled boot.img-ramdisk, which included different files like init, init.goldfish.rc init.rc, default.prop, etc. In a file default prop is the setting ro.secure=0, and this is the settign I belive, that makes kernel insecure. I've also tried to unpack the zImage that I got from thsi boot.img, with the kitchen to see if includes those so called initramfs, but it doesn't. So I think that if I figured out which files should be in ramdisk, and if those files can be pulled of the phone, that than maybe I can repack a working boot.img. What do you think?
qzem said:
Ok what exactly is in initramfs, that is what I am trying to figured out? I've recompiled some other samsung boot.img with dsixda kitchen, and I got zImage and a folder caled boot.img-ramdisk, which included different files like init, init.goldfish.rc init.rc, default.prop, etc. In a file default prop is the setting ro.secure=0, and this is the settign I belive, that makes kernel insecure. I've also tried to unpack the zImage that I got from thsi boot.img, with the kitchen to see if includes those so called initramfs, but it doesn't. So I think that if I figured out which files should be in ramdisk, and if those files can be pulled of the phone, that than maybe I can repack a working boot.img. What do you think?
Click to expand...
Click to collapse
Yep, you got everything right there, I think.. Initramfs, ramdisk are the same thing.. They should include the cpio.gz, init.rc, default.prop etc... Have you extracted these files from the source kernel? Cos I don't think we can copy directly from phone, cos we need to preserve the permissions set on the files... Can you do that with kitchen?
Sent from my GT-I9070 using XDA
I am following the topic and hoping it works out the development of kernels and roms to the device.
Come on it has to be a way to compile an insecure kernel without having the access to rooted phone. Cause all the options I found till now, required some files, that can only bee pull from rooted phone. But the whole point of an insecure kernel is the possibility to root the phone. Anybody can help us? Maybe I should start another thread, damn it!
Haha... Yeah, somehow I feel that Samsung is screwing with us, what with the new firmware format (never had kernel.bin before) and secured kernel, this is becoming impossible.. If we just have some devs good-hearted enough to port CWM recovery for us.. But without initramfs, I don't know if it's possible..
Sent from my GT-I9070 using XDA
The initramfs is inside kernel.bin.md5 (as for the Galaxy S firmware).
kernel.bin.md5 is a normal zImage Linux kernel (+md5).
the initramfs is included in the kernel image (see http://forum.xda-developers.com/wiki/Extract_initramfs_from_zImage)
the initramfs is in our case a uncompressed cpio archive, therefore the script in the wiki does not work, but https://github.com/mistadman/Extract-Kernel-Initramfs/blob/master/unpack-initramfs can extract it without problem.
So, there should be no difficulty to root the i9070...
The easiest way would be to change the initramfs and repack everything.
How to port Sense.
Source: http://forums.androidcentral.com/optimus-v-rooting-roms-hacks/164989-guide-how-i-port.html (second post)
This is NOT my guide, just posting it here!
This is a very difficult process that I hope you'll understand.
First step is to find a device that is preferably VERY similar to your device, in this instance I guess we would use the htc thunderbolt, which I've been told multiple times that it is used for the MT.
You're going to want to use CM7 for parts. Simple enough.
I will be referring the Sense ROM to SENSE and CM7 as BASE to simple things up. So remember that.
When I say replace, I would recommend deleting from one and adding it with the other
Open up Sense and Base in different windows.
Put in the boot.img from Base into Sense (make sure you put the original boot.img in some other place that you'll remember)
go into /system/usr on both
replace keylayouts and keychars from Base into Sense (this is just your keys)
download dsixda's kitchen (http://forum.xda-developers.com/showthread.php?t=633246)
Get the ROM you have so far set up in it and what not (I'm a little fuzzy at this part)
Once you get done with that, run the menu in terminal and navigate your way to decompile the boot.img (action key- "a") and then run the same thing except run the action key "w" to decompile the original boot.img. So the key here is to decompile both boot.img's.
Go into the ramdisk on both and go into init.rc
THE MOST IMPORTANT PART IN THIS (THE MATTER OF BOOT AND BOOTLOOP) IS THE LINE
"export BOOTCLASSPATH" near the top. It will have a bunch of lines after it. Now in the Base's boot.img, delete this whole line. Replace it with the lines from Sense's boot.img.
Now you can add anything else you want that looks like it belongs (preferably anything sense related)
Don't recompile the boot.img yet.
Now we add a2sd. To do this, just follow this guide (https://www.facebook.com/note.php?note_id=158823170833688)
The only thing you do in there is the edits to the init.rc, don't listen to the decompiling/recompiling mentions. Now you can go back into the menu for the kitchen and recompile the boot.img (action key - "b"). Now don't compile the WHOLE ROM, just take the new boot.img in working_** and put it into the Sense zip.
Now you're going to want to download my ROM (sorry, just don't feel like uploading each individual file) http://gannon5197.blogspot.nl/2012/03/got-sense-booted.html
And go into the /system/bin on both
these are the files you're going to need: a2sd, bash, apps2sd.hlp, busybox.a2sd, chka2sd, jita2sd, launcha2sd, starta2sd, and maybe possibly sh (try once without it)
And you're going to want to set permissions for each one of these in the updater-script (look at mine for references)
Now also look at my zip and you'll see move_cache_sd. Put that in yours and set permissions for it in updater-script (use mine for references)
After that, the other stuff is mainly just getting rid of all the bloatware, (look in /system/app and /system/media) I wouldn't delete any libs as of right now. If you try to flash it and it reboots recovery then it is too big.
If it is too big, you're probably going to want to move a lot of the apps to data. To do this, just make a file called data/app/put_your_apps_here on the root of the zip. You're going to have to set permissions for it in the updater-script, but use the test.zip I sent you in the original.
This will most likely get you booted. Nothing will likely work. Which is expected. If you have any problems, just use logcat. It will be your bestfriend. Have fun porting
Click to expand...
Click to collapse
reserved
Thanks for reopening it bro...
Sent from my LG-P500 using Tapatalk 2
No problem :thumbup:
Don't know how this above awesome thread is so blank
Have u tested if this way works
Sent from my LG-P500 using Tapatalk 2
great guide, gonna try out soon
hmm this one's new for me. saved
should come in handy sometimes
someone has to do this for the Galaxy S2.
Will it also work for ICS ROMs?
I must do this. Anybody know where I can get the firmware for the One S?
Can i use a Gingerbread ROM as a base instead of cm7?
Hello for lg p500 there is 2 sense rom but data and mic not working in both rom can you help to solving that problems????btw great tutorial.
in fact sensse porting is differnet from the tutorial showed it is a little bit more difficult and there are some libs needed that there is only for the devices you are porting to. so a general tread will not really work
QuBe2 said:
in fact sensse porting is differnet from the tutorial showed it is a little bit more difficult and there are some libs needed that there is only for the devices you are porting to. so a general tread will not really work
Click to expand...
Click to collapse
Well this is not my tutorial just found it on the internet so I don't know if it works
Lord Inglip said:
Well this is not my tutorial just found it on the internet so I don't know if it works
Click to expand...
Click to collapse
why sharing things on the internet
QuBe2 said:
why sharing things on the internet
Click to expand...
Click to collapse
Because it's the internet. This guide was the only thing I could find.
Well you ported a htc sense One x rom to the Nexus S, so can you show us how you did it?
Lord Inglip said:
How to port Sense.
Source: http://forums.androidcentral.com/optimus-v-rooting-roms-hacks/164989-guide-how-i-port.html (second post)
This is NOT my guide, just posting it here!
Click to expand...
Click to collapse
Similar phone means the same chipset,processor and gpu??
a2441918 said:
Similar phone means the same chipset,processor and gpu??
Click to expand...
Click to collapse
Yes it's better if the phones have the same hardware
Lord Inglip said:
Yes it's better if the phones have the same hardware
Click to expand...
Click to collapse
I have an xperia x10.. will the nexus one and HTC desire be suitable??
My cm7 rom which i downloaded doesn't have a boot.img file.. So how to get it?? Is it the system.img got from a nandroid backup?? and the sense rom which the post refers to is the stock sense rom of the phone in a zip format or a modded one??
Not working..stuck at boot logo
I have managed to build the AOSP from src, but i have not tried to flash the rom because i have no clue what blob files i need to extract from the phone and where ti out em before i do a real build.
I guess that i can use the same extract script CM uses, but i still dont know where to put the files, pls help
entropin said:
I have managed to build the AOSP from src, but i have not tried to flash the rom because i have no clue what blob files i need to extract from the phone and where ti out em before i do a real build.
I guess that i can use the same extract script CM uses, but i still dont know where to put the files, pls help
Click to expand...
Click to collapse
You put it in vendor/lge/mako
Sent from my Nexus 4 using Tapatalk 2
Easiest and best way to port CM7,CM9,CM10 Based ROMs to HTC Aria/Intruder/Gratia
Code:
I do not guarantee any successful porting.
I am not responsible for [B]bricked devices, dead SD cards, or a broken device[/B].
[B]YOU[/B] are choosing to make these modifications,
and if you point the finger at me for messing up your device,
I will laugh at you.
->Copied from some xda thread.
*****
But a rom, no matter how bad should *not* do any physical non recoverable harm to your device,flashing a rom or restoring a nandroid backup via cwm *should* immediately fix any problems what so ever.
And I will try to help in any ways I can.
I am NOT a developer, I can not code,compile,etc, I am only an android enthusiast with half a brain able to follow specific instructions.
This guide is actually somewhat a good combination of various "how to port roms"
guides found here on xda suited and very slightly modified for our beloved Aria.
Thanks to all of those threads and their writers.
Click to expand...
Click to collapse
Actual Tutorial starts here:
I will try to make this guide as straight forward as possible.
PORT ROM:
First you need to figure out what rom you are going to be porting.
For our Aria, The rom you want to port should belong to a device that has:
HTC brand (optional but recommended)
A ArmV6 CPU (VVVV important)
A HVGA Resolution (optional, any mdpi should do,if not just open the system apk files using 7zip and resize all the BIG images.)
The Rom needs to be:
CM7 BASED OR CM10 BASED OR CM9 BASED.
The full zip size less than 150MB(Recommended).
What Does Port Mean:
This simply refers to the rom you will be trying to port.
Recommended device to port from is the HTC Wildfire S a.k.a Marvel.
But any other device
BASE ROM:
What Does Based Mean:
It means that the rom should have similar sources and stuff,
Meaning you can only attempt to port a android 2.3 rom if you already have a 2.3 rom on the device.(In our case cm7).
So,
For porting 2.3 roms, chose cyanogenmod 7.2 as BASE.
For porting 4.0 roms, chose cyanogenmod 9 as BASE.
For porting 4.1 roms, chose cyanogenmod 10 as BASE.
ETC... I hope you get the point.
:fingers-crossed:
Thing you will need:
A good Zip extractor and compressor. (I use 7zip, its free. If you have winrar or something else,it will also do.)
Notepad++ (This thingy is awesome! And you need it for some stuff)
Android SDK(Not the whole thing, just adb zip from our sticky thread will do.)
Some Basic Android Knowledge, Root knowledge.
Mostly Common Sense.
Click to expand...
Click to collapse
Step 1:
Extract our device rom zip and name the folder AriaRom,
Extract our Port rom zip and name the folder PortRom.
Step 2:
Delete the following folders on the AriaRom/system folder:
App(You can keep some non conflicting indepent apps if you want)
Framework
Fonts
Media
Step 3:
Go to
Code:
PortRom folder/system
and copy:
App(You can keep some non conflicting indepent apps if you want)
Framework
Fonts
Media
and then paste them to AriaRom/system.
Step 4:
You need to open these two folders side by side(on windows, open both folders then right click on the task bar and click "Tile windows vertically").
The two Folders are:
Code:
[LIST]
[*]AriaRom/system/etc
[*]PortRom/system/etc
[/LIST]
In
Code:
etc/permission
folder copy all the permissions files in PortRom to your AriaROM folder except
Code:
platform
handheld_hardware
Then open init.d Folder in AriaRom and Delete Everything except
Code:
banner
and then copy all the files inside init.d folder of PortRom to init.d folder of AriaRom.
Step 5:
Now
Code:
AriaRom/system/buid.prop
and
PortRom/system/buid.prop
files using Notepad++
On AriaRom Build.prop make changes as you wish.
Code:
[LIST]
[*]ro.build.id=
[*]ro.build.display.id=
[*]ro.build.date=
[*]ro.modversion=
[/LIST]
Copy and replace these values from PortRom buildprop to Aria rom buildprop.
ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=
Also Copy anything you Find Extra and important-ish in ADDITIONAL BUILD PROPERTIES using common sense.(Not much major stuff, but if bootlooped, copy whole thingy.)
IMPORTANT Step of commons sense:
Open up both
Code:
META-INF/com/google/android/updater-script
using Notepad++.
Compare AriaRom AND PortRom line by line(on two tabs in notepad++ easily done).
Copy extra/additional lines from PortRom which are not present in AriaRom to aria roms updater script.
Step 6:
If You find any extra file or folder in system folder of PORTrom than copy them to your Ariarom system folder.
Finally, zip the
Code:
META-INF
system
boot.img
data(if exists).
folders/files togather and use "normal" compression if asked.
Name the zip to whatever you want, and walla you have successfully ported the rom!
:fingers-crossed:
Doing the above steps should land you a pretty solid rom, as solid as the base rom.
Still,Incase of problems:
If the ported rom does not boot:
Stuck at boot screen
Bootlooping
Then copy system/lib/
Code:
libandroid_runtime.so
libandroid_servers.so
libmedia_jni.so
files from PortRom to AriaRom system/lib.
It should boot, if it still doesnt, check the above steps and find out what you did wrong.
Common reasons could be:
Build.prop mess up
Updater Script mess up
Forgot to delete or copy file
After it boots,
Everything that worked on Base rom, should work on Ported.
Every problem on Base Rom will exist on Ported.
In case of root related problems(settings not being saved,system app FCs,etc), install a root app like titanium backup or something and check if it works,if it doesnt its surely root issue,just download and flash latest superuser zip.
If some FC,Port rom funciton not working,etc issues appear, you need to decompile framework-res.apk using apktool and change device specific xml files to ours.This is a part where I have the most trouble and suck at.
Just search xda for
How to Logcat,
Click to expand...
Click to collapse
this will help you to find the problems and search xda to solve them. Ask me if you want on this thread, & I will try to help, but I dont think I will be able to help much as I have very limited knowledge on compile De-compile stuff.
If someone is good at framework-res and framework decompile & recompile stuff, please help us.
Click to expand...
Click to collapse
Thanks for reading this,I hope you port over some awesome roms to our device.
:highfive:
I just tried to port the PACman ROM from Samsung Galaxy Ace to the Aria, but I am stuck at boot screen after following your tut, which is awesome by the way. Could you post a working build.prop and updater-script for this ROM? Maybe this will help me get it booting...
dansou901 said:
I just tried to port the PACman ROM from Samsung Galaxy Ace to the Aria, but I am stuck at boot screen after following your tut, which is awesome by the way. Could you post a working build.prop and updater-script for this ROM? Maybe this will help me get it booting...
Click to expand...
Click to collapse
That's an Armv7 device.
Still I'm gonna download it & try.
In the meantime take a look at bootclass path.
Why are SMARTphones soo... Freaking Dumb?
sifat3d said:
That's an Armv7 device.
Still I'm gonna download it & try.
In the meantime take a look at bootclass path.
Click to expand...
Click to collapse
I don't think so... the Samsung Galaxy Ace with device number S5830 should be Armv6, but in the Galaxy Ace Forums there is also a place for the Galaxy Ace II, which is Armv7. Maybe that's a bit confusing. But nims11 PAC-Man Rom is definitely for the Armv6 device.
hey man thnx for the tut but i tried porting the paranoid rom like you but i keep getting this error while flashing ( set_perm: some changes failed) i think it have something to do with the updater-script, could u upload the build.prop and the updater-script for me ? and btw why do we need the sdk ??
---------- Post added at 02:43 AM ---------- Previous post was at 02:03 AM ----------
actually now i tried not to change the updater-script and the rom flashed but stock at boot pleaaase help me i really want to try the paranoid rom (ive been trying to port the "pa_marvel-2.54-beta1-08NOV2012-164651" )
rami.ejle said:
hey man thnx for the tut but i tried porting the paranoid rom like you but i keep getting this error while flashing ( set_perm: some changes failed) i think it have something to do with the updater-script, could u upload the build.prop and the updater-script for me ? and btw why do we need the sdk ??
---------- Post added at 02:43 AM ---------- Previous post was at 02:03 AM ----------
actually now i tried not to change the updater-script and the rom flashed but stock at boot pleaaase help me i really want to try the paranoid rom (ive been trying to port the "pa_marvel-2.54-beta1-08NOV2012-164651" )
Click to expand...
Click to collapse
Here you go,
http://pastebin.com/62hbaQwL
on THAT ROM,
IF you follow the guide & use my posted script,
100% assurance rom will boot and work. except cm
The sdk is for getting the logcat when a problem occurs.
Why are SMARTphones soo... Freaking Dumb?
Nice tut very well done
XDA Moderator
dansou901 said:
I don't think so... the Samsung Galaxy Ace with device number S5830 should be Armv6, but in the Galaxy Ace Forums there is also a place for the Galaxy Ace II, which is Armv7. Maybe that's a bit confusing. But nims11 PAC-Man Rom is definitely for the Armv6 device.
Click to expand...
Click to collapse
In that case you'll need to unpack both boot.img aka the kernel , fix bootclass path in init.RC by replacing it with the value from port roms init.rc.
Ill try to port that rom soon and upload a fixed boot.img (if I can get it to boot),if you don't beat me to it. it looks cool.
Why are SMARTphones soo... Freaking Dumb?
Bootclasspath is the same on both roms. So there must be a mistake in updater-script and / or build.prop. I've just messed up my updater-script, I guess, so I'll make a new one and post it later together with the build.prop.
I got this pac rom booting & everything operational except per app dpi(exists in port rom).
This rom works with the guide.
http://forum.xda-developers.com/showthread.php?t=2118567
Why are SMARTphones soo... Freaking Dumb?
I'll try this and let you know if it worked.
Hi guys,
If you only want per app dpi,persistent apps,etc
Try this on winsuk bros cm10
http://forum.xda-developers.com/showthread.php?t=1574401
Its quite good.
...Devided by zero
dansou901 said:
I'll try this and let you know if it worked.
Click to expand...
Click to collapse
btw,
did it work?
...Devided by zero
Sadly, I didn't get any time to try so far. But on Sunday I lost my Gratia, so I won't continue this project; I've upgraded to the HTC Desire X.
dansou901 said:
Sadly, I didn't get any time to try so far. But on Sunday I lost my Gratia, so I won't continue this project; I've upgraded to the HTC Desire X.
Click to expand...
Click to collapse
That's a shame. Similar thing happened to me. I lost my Aria right before i had a chance to try this, and upgraded to the Nexus 4.
will this method work on cm10.1 and this http://forum.xda-developers.com/showthread.php?t=2297580 ??
Could work, just try... I would do it if I still had the phone...
dansou901 said:
Could work, just try... I would do it if I still had the phone...
Click to expand...
Click to collapse
rami.ejle said:
will this method work on cm10.1 and this http://forum.xda-developers.com/showthread.php?t=2297580 ??
Click to expand...
Click to collapse
It should pretty much work,
If it doesnt, just send me the
Updater script
Build.prop
files of BOTH roms, And I'll have a look.
I wouldve tried myself but my aria has no network and has random reboot issues due to falling hard.
Hi guys, long time no post. I have updated this guide on how to build kernels for Falcon so that anyone can learn! It's pretty simple once you get the hang of it. So yeah, here we go!
Prerequisites:
- You must have a Linux firmware running on your computer (I suggest Builduntu because you can skip the next one [build environment setup])
- Build environment setup (Put the this in terminal and follow instructions)
- Patience and a heart willing to learn
- You need to know the languages C, C++, Java, Ruby, Python... NOT! You don't need to know ANY coding languages.
[MOTIVATIONAL SPEECH]
Truth be told, when I first started out developing, I knew NO coding languages except for HTML and a little bit of Java. Both have nothing to do with kernels! I actually learned how to do this when I suffered from a concussion. So if you really want to learn how to kernel dev and you give up halfway, just know that a 14/15 year old kid could do it..
[/MOTIVATIONAL SPEECH]
Click to expand...
Click to collapse
WARNING: I am not responsible for any damages to your phone or computer or pet unicorn. When you modify the wrong partitions, set too many jobs for your compiler, break your keyboard out of frustration etc., that is not anyone's fault but yours. Or your pet unicorn.
Your Personal Handbook to the Following:
- Anything inside "CODE" boxes, type it into your terminal. If you can't find terminal, then press CTRL, ALT, t.
- If I were you, I would write these by hand instead of copying and pasting it because after a certain amount of times, you will remember the linux commands and it will be easier for you to compile more kernels for different devices
- Use this thread as a "Help Me" button. Ask for help!
Click to expand...
Click to collapse
A New Beginning:
Let's start out with something simple, getting the actual code:
Code:
git clone https://github.com/cyanogenmod/android_kernel_motorola_msm8226
This could range from 3 minutes to 2 hours!
Once that's done, open up your file manager and rename the folder (should be android_kernel_motorola_msm8226) to whatever you want. I will refer it as "mykernel".
Click to expand...
Click to collapse
Pokemon!
For this tutorial, we will be using a Sabermod 4.7 toolchain to compile. I WOULD teach you how to compile with 4.8+, but it creates errors that will take even longer for me to write about sooooooooo :fingers-crossed:. Now to get the toolchain:
Code:
git clone https://github.com/SaberMod/android_prebuilts_gcc_linux-x86_arm_sabermod-arm-eabi-4.7
Rename this to whatever you like, but I will be referring this as "toolchain"
Now go into you folder where the kernel source is stored...
Code:
cd mykernel
Click to expand...
Click to collapse
You're Almost There!:
Time to set-up the compiler!
Code:
export CROSS_COMPILE=/home/(insert linux home name here)/toolchain/bin/arm-eabi-
This tells the toolchain that "OK, we want to make ALL this code here into a kernel".
This next line tells it that your defconfig (the toolchain's manual for compiling the kernel) that it's in the arch/arm/configs folder.
Code:
export ARCH=arm
Now to tell the it what the defconfig is!
Code:
make falcon_defconfig
Hehe, now to the hardest part of all...
MuHAHHAHAHa
Click to expand...
Click to collapse
THE HARD (coding) PART
You ready for this? HERE IT IS! TIME TO BUILD THE KERNEL!
Code:
make -j4
Now sit back, relax, and watch the code! Or you could read a book, watch ****, count your fingers, play with your toes...
If you have an error during the waterfall of code, find the part where it actually says *error* (you'll probably have to scroll upwards) and search it on Google or post it here.
Click to expand...
Click to collapse
THE BEST PART
If you manage to get something that says "the kernel zImage is ready" or something like that, that means you've made it!
You have officially compiled your own kernel from source! Now you need to put it in a flashable zip.
Download this file and open it up, but DON'T EXTRACT IT.
Now go to your kernel source then "CTRL + F" and search for "zimage-dtb".
Find it and put it in the "kernel" folder of "FalconKernel - Signed.zip". Then "CTRL + F" and search ".ko".
Copy radio-iris-transport.ko and put it in the system/lib/modules (not pronto) of the zip.
Then find wlan.ko and rename it to pronto_wlan.ko. Copy and paste it in system/lib/modules/pronto of the zip.
Click to expand...
Click to collapse
Now you can put it on your phone and flash it!
I will update this in a bit. What feature would you guys want in your kernel? The most votes in the POLL above will be the one I teach you here!
Here I will walk you through on how to add the intelliplug feature made by @faux123
First, fetch my Green Machine kernel source (go into your kernel folder in terminal):
Code:
git fetch https://github.com/YoshiShaPow/green_machine_falcon
Then you could cherry-pick (basically copy) all my cherry picks for intelliplug from my source.
If you do check my source out, you can see there's a little link to a history of commits near the middle of the screen, right above the files/folders. You can see at this page of my features history, you'll see a bunch of commits for intelliplug. I will use those commits and copy it to your own kernel.
This copies the initial coding/first commit of intelliplug!
Code:
git cherry-pick 01a850f
This cherry-picks the remaining commits so that your newly added intelliplug is updated.
Code:
git cherry-pick 6623f2f^..4e1ece7
One more thing though, you need to add the line to compile intelliplug!
Almost all things compiled along with the zImage are in a file called defconfig. What a defconfig does, is tell your machine to build certain modules, kernel objects, drivers, governors, etc.etc.etc.. Now, all of them are found in the folder
arch/arm/configs
Click to expand...
Click to collapse
As stated in the OP, you have to modify the defconfig you use. (CM11 Kernel is falcon_defconfig, Gummy Kernel is msm8226_mmi_defconfig). Open up the corresponding defconfig and add this to ANY line anywhere.
Code:
CONFIG_INTELLI_PLUG=m
Now, for those who are familiar with "y=yes/n=no/m=maybe", you'll see that I specifically told you to put the "m=maybe" one. That's because when you compile the kernel again, right after you're about to start your build. Since you put that "m", the terminal will prompt you with a "y=yes/n=no" question on whether or not you would like to add the following feature. Since you would like to add the feature, put in "y". Later on when you feel more comfortable with adding features to your kernel, you can go back into the defconfig and put it as
Code:
CONFIG_INTELLI_PLUG=y
So that it will compile it without asking, since you have given it an answer.
Now you have officially compiled a "Custom Kernel" and with the knowledge you know, you could create a feature packed one by just kanging (copying one's work/features).
Always remember to
Code:
make clean && make mrproper
after every build to prevent errors and such!
Click to expand...
Click to collapse
I will use this to teach you how to make your own Bash Building scripts (and save time) to make it easier for your development life to flourish... eventually....
Any guide on adding governors or hotplug driver??
Sent from my Moto G using XDA Free mobile app
Best guide but how to add features likes s2w,dt2w etc
Flashhhh said:
Any guide on adding governors or hotplug driver??
Sent from my Moto G using XDA Free mobile app
Click to expand...
Click to collapse
Vote in the poll above! I will make a guide for one or more of the top chosen picks!
Brawn_Sg said:
Best guide but how to add features likes s2w,dt2w etc
Click to expand...
Click to collapse
DT2W and S2W are more complex. They require a few other things (ex. Powersuspend). I'll wait a bit and see what feedback I get before moving forward to something a bit more complex like DT2W, or GPU Overclock.
Can i use make menuconfig?
Krizthian said:
Can i use make menuconfig?
Click to expand...
Click to collapse
Yes you can. Normally when using "make menuconfig", you use the command after making the kernel's defconfig (falcon_defconfig).
Build using Docker
If you're on Linux, take a look at this approach which uses Docker for building CyanogenMod 12.0:
http://forum.xda-developers.com/showthread.php?t=2650345
(Disclaimer: It's written by me)
YoshiShaPow said:
Hi guys, long time no post. I have updated this guide on how to build kernels for Falcon so that anyone can learn! It's pretty simple once you get the hang of it. So yeah, here we go!
WARNING: I am not responsible for any damages to your phone or computer or pet unicorn. When you modify the wrong partitions, set too many jobs for your compiler, break your keyboard out of frustration etc., that is not anyone's fault but yours. Or your pet unicorn.
Now you can put it on your phone and flash it!
Click to expand...
Click to collapse
when i was trying to flash cm12 rom in cwm recovery it says error in zip and getting status 1 error , installation aborted ,
pls help im using moto g gpe and when trying to flash from twrp it says error executing updater binary in zip ,
no idea what to do pls help me out
karthik432 said:
when i was trying to flash cm12 rom in cwm recovery it says error in zip and getting status 1 error , installation aborted ,
pls help im using moto g gpe and when trying to flash from twrp it says error executing updater binary in zip ,
no idea what to do pls help me out
Click to expand...
Click to collapse
When you downloaded the anykernel zip, you aren't supposed to extract it. The best way to put the kernel in the zip is to just drag and drop it while IN LINUX. It will not work for windows! Or you could try signing the zip in TWRP (I think there's an option for that somewhere).
YoshiShaPow said:
When you downloaded the anykernel zip, you aren't supposed to extract it. The best way to put the kernel in the zip is to just drag and drop it while IN LINUX. It will not work for windows! Or you could try signing the zip in TWRP (I think there's an option for that somewhere).
Click to expand...
Click to collapse
im not extracting anything , i just downloaded the official cm12 nightly and flashed but didn't workout ,any ideas
karthik432 said:
im not extracting anything , i just downloaded the official cm12 nightly and flashed but didn't workout ,any ideas
Click to expand...
Click to collapse
That has nothing to do with this thread :silly:. You probably have to sign the zip again.
@YoshiShaPow.... i need some help
i compile a kernel for my device and it booted fine but no display....
can you help me in this....
sorry for posting here..my device is Redmi 1s
Luffy.d said:
@YoshiShaPow.... i need some help
i compile a kernel for my device and it booted fine but no display....
can you help me in this....
sorry for posting here..my device is Redmi 1s
Click to expand...
Click to collapse
No problem, I welcome anyone with kernel development questions here! When booted, what do you mean? And if there's no display, how do you know it booted? Also, did you use my anykernel zip? I may be wrong but I don't think it is compatible with all phones.
YoshiShaPow said:
No problem, I welcome anyone with kernel development questions here! When booted, what do you mean? And if there's no display, how do you know it booted? Also, did you use my anykernel zip? I may be wrong but I don't think it is compatible with all phones.
Click to expand...
Click to collapse
yeah it booted bro....i can hear lock unlock sound and even i can hear incoming call ring
i was trying to fix this from a week and found out it not kernel it rom problem ...
my device is build using prebuilt kernel so any compile kernel wont work...but now they are build with this kernel source so compile kernel work
thanks bro...
and one thing bro... i m new to kernel development so how can i optimize kernel
i know about and can add governors and use custom toolchain but i don't know about o2 or o3 optimization etc and all
sorry if i m being too much
great I start today
Luffy.d said:
yeah it booted bro....i can hear lock unlock sound and even i can hear incoming call ring
i was trying to fix this from a week and found out it not kernel it rom problem ...
my device is build using prebuilt kernel so any compile kernel wont work...but now they are build with this kernel source so compile kernel work
thanks bro...
and one thing bro... i m new to kernel development so how can i optimize kernel
i know about and can add governors and use custom toolchain but i don't know about o2 or o3 optimization etc and all
sorry if i m being too much
Click to expand...
Click to collapse
Those changes are a bit more advanced because it will bring build errors. The kernel is already preoptimized with o2 changes. The errors are fixable though. I don't think I'll be able to add an explanation for those in this thread, maybe through pm?
YoshiShaPow said:
Those changes are a bit more advanced because it will bring build errors. The kernel is already preoptimized with o2 changes. The errors are fixable though. I don't think I'll be able to add an explanation for those in this thread, maybe through pm?
Click to expand...
Click to collapse
thanks bro...will pm you when i finish setuping my git
etvtaglios said:
great I start today
Click to expand...
Click to collapse
Go for it bro!!