First Custom Kernel for a Tizen phone! [3.10.106] [Z2] - Tizen Software Development

I AM NOT RESPONSIBLE IF YOUR PHONE DIES DUE TO THIS​
I have successfully created a custom kernel for the Samsung Z2! This is built from source using the linaro 4.9 gcc toolchain here: https://github.com/ne0z/tizen_toolchain_kernel
This will only work on the Samsung Z2, not any other tizen phone.
This has only been tested on the Z200F. I have not tried any other variant, but it should work.
In my testing, there hasn't been any difference in performance.
It is a "dirty" kernel because it is not officially signed by Samsung
This kernel is an upstreamed kernel, meaning that it has been updated to linux kernel 3.10.106. There are no other edits besides that.
Attached you will find the tar file which contains two files. dzimage and modules.img. You require both of them to boot the kernel. This is because Tizen does not use a boot.img or a recovery.img.
To flash the kernel, use either lthor or ODIN. ODIN is recommended. If you don't know what lthor is, it isn't for you.
Steps:
1) Boot your Z2 into Download mode
2) Load the tar file into ODIN in AP
3) Flash
4) Profit
To verify that you have the new kernel running properly, download AIDA64 from the tizen store and open the "Tizen" option. Scroll down to kernel version and you should see the new kernel version say "3.10.106-dirty"
Enjoy!
Source (use branch "edit"): https://github.com/Qiangong2/stock_kernel_3.10.65_sc9830_samsung

Related

Build kernel from source and flash it in GTi9300

Hello,
since I don't yet have access for the specific section I post here
I can't find how to flash a kernel built from source (aka zImage). Since fastboot is not available on GS3, I just want an alternative tech to boot my gs3 with my build zImage.
I build the source from stock kernel samsung opensource database (update 8) and receive a zImage file.
I made a backup with cwm and unpack the boot.img with a perl script, then repack a new boot.img with my zImage as kernel and the ramdick from unpack but cannot boot with new package.
Could someone maybe give me a kernel source and the right corresponding package to boot it. Or maybe just a good way to make the whole process.
My final goal is to build a custom module for the GS3, that's my I need building from source and not an already-packed-kernel. Moreover if someone can help me directly about the module, he's very welcome

[Help] Build kernel from source and flash it

Hi,
I don't try to flood, just to increase my chance to have any help
I want to build a custom module for my GTi9300. Since the module need to be compiled whith the same kernel on the phone, i tried to build and flash a kernel from source (aka zImage). Since fastboot is not available on GS3, I just want an alternative tech to boot my gs3 with my built zImage.
I build the source from stock kernel samsung opensource database (update 8) and receive the zImage file.
I made a backup with cwm and unpack the boot.img with a perl script, then repack a new boot.img with my zImage as kernel and the ramdick from unpack but cannot boot with new package.
Could someone maybe give me a kernel source and the right corresponding package to boot it. Or maybe just a good way to make the whole process.
------------------------------------------------------------------------------------------------------------------------------
Moreover if someone can help me directly about the module, he's very welcome.
Without having the same kernel on the phone, I already tried to insmod my module. I've got first some version error, with the module_layout. Even if I correct it the module still doesn't load. In the kernel source, I modify the Subversion in the kernel to match with the one on the phone. But the compilation result add a "-gc33f1bc-dirty" to the end. Maybe I miss something to do before the compilation
Please post all questions in the Q&A section.
Thread Moved and Closed as you already have a thread going for this over there.

Help with Kernel-compiling for i9100

Hi everyone,
I need some help while I try to compile my first kernel (for experiments) with the Linaro-Toolchain. I followed a youtube instruction and it works well till the point to handle a stock/original boot.img file (with $ abootimg -x boot.img)
INFO: I´m playing with the slimkernel source, Linaro toolchain and mint 17.
Well before bothering you, i tried 1000 different ways to get this boot.img. But:
- extracted stock fimware only contains a boot.bin (and size does not match)
- a boot.img form a custom kernel zip brings me "no Android Magic value. giving up"
- downloadable boot.img are for all other phones excluding i9100...
Do you have any idea how to get this f****g boot.img which is working to get the kernel compiled, or do you know what i did wrong with that??
Thanks in advance
Ambador
Have you tried to extract a boot.img from a slimrom zip?
Yes I did but gave me the same result. I tried different kernels, roms and everytime while typing abootimg x -boot.img the fail appears.
Ambador said:
Yes I did but gave me the same result. I tried different kernels, roms and everytime while typing abootimg x -boot.img the fail appears.
Click to expand...
Click to collapse
I don't know really what you are doing atm because you are compiling a kernel from the kernel sourcecode. But I think that you are going to replace the zImage in the boot.img because kernel compiling doesn't include ramdisk right? Did you ever tryed to use dsixda-kitchen, It's usefull and also easy to use with kernel extracting.
Sorry if I got you wrong.
I used that kitchen already, but gave me the same missing android magic issue.
I tried an other thing, cuz im currently using apolo 7.1 kernel:
this kernel has a zimage only. So is it a possible way to get the kernel source, make a change (add an scheduler which is not in kernel) to see if it will work, compile the zimage with linaro and just replace it in the kernel.zip??

[MOD] IsoRec: Isolated Recovery for the Galaxy S2 Family

IsoRec: Isolated Recovery for the Exynos 4210 / Galaxy S2 Family
UPDATE: This change has been merged into official CyanogenMod 11, 12.1 and 13 !!!
UPDATE: Official IsoRec TWRP 3 for i9100 is now available !!!
UPDATE: You can now use official i9100 TWRP on d710, i777 and n7000 !!!
UPDATE: Unofficial CM13 for i9100g by adxamg now supports IsoRec !!!​
What is this about?
For too long the owners of Exynos 4210 family devices have been forced to use whatever recovery was chosen by their ROM or kernel provider of choice. These devices have a dedicated recovery partition that is apparently vestigial, and their bootloaders are seemingly unable to boot it. For this reason, the recovery ramdrive is typically bundled together with the kernel and the Android boot ramdisk in a monolithic binary, usually referred to as simply "the kernel" (both ramdrives share a single embedded kernel image).
This means that using your choice of recovery is a practical impossibility:
To change the recovery you must also replace the kernel and the Android boot ramdrive, possibly introducing issues with your ROM.
If you update your kernel or kernel-bundling ROM, you will loose your custom recovery if you had one.
If the kernel bundled with your choice of custom recovery does not boot, your Android will probably not boot either, and you will need a PC to debrick.
This already bad situation was exacerbated with CM 12.1, which includes a severely restricted recovery in official releases, to the point that some official maintainers have had to release semi-official kernels with alternate recoveries just to keep the XDA crowd from lynching them and ripping their limbs off.
What is IsoRec?
IsoRec (Isolated Recovery) is a very simple proposal aiming to solve this problem once and for all. ROM and kernel maintainers can keep on bundling their preferred default recovery, and users gain the freedom to override. Your kernel maintainer has to merge the IsoRec patch (or implement their own compatible solution) for you to be able to use an isolated recovery.
Kernel maintainers are kindly asked to respect their users' freedom by merging this simple patch. Your rate of adoption will make or break this initiative.
How does it work?
It is extremely simple. The IsoRec-patched boot sequence is as follows:
The bootloader loads the kernel and the unified ramdrive, then fires up the kernel.
The kernel starts and then invokes the unified ramdrive.
If booting Android, the unified ramdrive replaces itself with the nested Android boot ramdrive and invokes it.
Else if booting recovery, the IsoRec-patched unified ramdrive chooses the recovery ramdrive as follows:
if the raw recovery partition (/dev/block/mmcblk0p6) contains valid lzop-compressed data
and said data is a valid cpio archive
then use that cpio archive as the recovery ramdrive;
else use the default recovery ramdrive that comes nested within the unified ramdrive.
Finally the unified ramdrive replaces itself with the chosen recovery ramdrive and invokes it.
Where can I find the IsoRec patches?
These links are of interest only to kernel maintainers:
CyanogenMod patch: https://github.com/CyanogenMod/andr...mmit/9bfbaf337207359ef6aefe0a329a3b760054a6b7
Dorimanx patch: https://github.com/Lanchon/IsoRec-D...mmit/fe2288665fca2eb33426b71086fc7282ee687e68
Where can I find some IsoRec-compatible kernels?
In the future, hopefully everywhere. For now you can use my CM 11/12.1/13 TRIM-IsoRec kernels:
https://www.androidfilehost.com/?w=files&flid=47607
UPDATE: Official CyanogenMod 12.1 and 13 kernels are now IsoRec-compatible !!! (link)
UPDATE: Unofficial Dorimanx builds by gsstudios are now IsoRec-compatible !!! (link)
Where can I find some IsoRec-compatible recoveries?
https://www.androidfilehost.com/?w=files&flid=47550
(The "disabler" files just clobber the contents of the isolated recovery partition so that the default recovery bundled with the kernel boots instead.)
UPDATE: Unofficial IsoRec TWRP 3 for i9100 by arnab has been released !!!
UPDATE: arnab and Dees_Troy teemed up to give us official TWRP 3 !!!
NOTE: TWRP 3 incompatibilities with CM 12.1 kernels have been fixed as of TWRP 3.0.2.0.
Note: I did not build any of the TWRP recoveries myself, I just bundled images shared by other developers. Big thank you to @arnab, @cyril279 and @dimoochka for the TWRP images! Recovery developers are welcome to reuse my flashing zips, just please remove my name from the filename AND the flashing script. Use lzo -9 compression and remember to sign your zips!
TWRP 3 for n7000, i777 and d710
You can use official i9100 TWRP on d710, i777 and n7000 with TWRP Patcher.
Installing TWRP 3 the Easy Way
There are many ways to skin a lolcat. You can easily flash a TWRP .img file (or any IsoRec recovery .img file) on the Exynos 4210 S2 family via adb from your PC. (Prerequisite: working adb connection and tools.) Try it out:
Download the 'twrp-X.X.X.X-i9100.img' file.
Switch to adb root by typing this in your PC:
adb root​(Requires root on your phone. In CM, enable adb root in developer settings.)
Flash the recovery by typing this in your PC:
adb push twrp-X.X.X-X-i9100.img /dev/block/mmcblk0p6​
WARNING: DO NOT MISTYPE ANYTHING !!!
If you do, you can HARD-BRICK your phone FOREVER. Better copy/paste to be sure.
WARNING: DO NOT TRY THIS IN ANY DEVICE EXCEPT EXYNOS 4210 S2 PHONES !!!
If you do, you can HARD-BRICK your device FOREVER. The 4210 devices are: i9100, n7000, i777, d710 and sc02c.
XDA:DevDB Information
IsoRec, Tool/Utility for the Samsung Galaxy S II
Contributors
Lanchon
Version Information
Status: Stable
Created 2016-01-12
Last Updated 2016-06-22
Reserved
Reserved
Sounds great. If this works reliable without side effects and if @Lysergic Acid merged your patch later (after it has proven that), this would make a dream come true for many here.
Thank you so much!!!
hi @Lysergic Acid,
i entered a change on gerrit:
http://review.cyanogenmod.org/#/c/127877/1
tests on the i777 are still pending.
http://forum.xda-developers.com/showpost.php?p=64778749&postcount=149
@Lanchon you are awesome. What a cool idea to fix a Samsung problem of putting the recovery and kernel together.
Sent from my Nexus 6P using Tapatalk
@Lanchon is there a possibility of some compatibility check? I mean, what happens, if the isolated recovery somehow does not match the kernel, e.g. I (hypothetically) start with CM12.1 plus isolated recovery and want to switch to CM13 with corresponding feature, but the kernels have to differ in some way so that the isolated recovery still in the partition fails. Can the isolated recovery be invalidated somehow?
Could this be done with Odin?
Have found a hilarious bug, don't worry, don't need support but if someone else can confirm, that would be fun.
Xposed 79, if Gravitybox is enabled (its settings don't matter.), and the screen is off, receiving a Skype message, reboots the phone. Completely reproducible here. LOL
Klaerchen said:
@Lanchon is there a possibility of some compatibility check? I mean, what happens, if the isolated recovery somehow does not match the kernel, e.g. I (hypothetically) start with CM12.1 plus isolated recovery and want to switch to CM13 with corresponding feature, but the kernels have to differ in some way so that the isolated recovery still in the partition fails. Can the isolated recovery be invalidated somehow?
Could this be done with Odin?
Click to expand...
Click to collapse
simple, if that happens then the person goes into android and clobbers the recovery partition from there. or writes a different recovery from there. or overwrites the kernel (manually or flashify style). or goes to download mode and uses odin or heimdall to flash a kernel or recovery or just to clobber. basically you are describing a situation of flashing the wrong kernel: the standard cure is using download mode.
that said, i thought of disabling the alternate check by pressing VOL DOWN during boot. but...
a) this affects several devices and, though IsoRec is compatible with all, the button setup could be different; that means investigating and testing, testing, testing with owners of obscure devices.
b) i don't know how to read button state directly using the kernel so i would have to research that.
c) most importantly, i don't have time to do a) nor b)! the patch took a few minutes; then building the kernels, packing the recoveries, testing, entering the change on gerrit, and writing all this down took a couple of hours already, hours that btw i shouldn't have spent on this AT ALL.
this is the best i could make it in the time i didn't have. IMHO the missing VOL DOWN functionality does not justify stopping people from having this. let's see what the CM gerrit people think. one thing is for sure: i don't have the time to make it better.
@Lanchon
Hi,
many thanks and much respect for your great work!
Im gonna test the IsoRec now, seems its working good so far,
hopefully the trim will not destroy my phone..
(Im still would be feel much more safe when kernel dont have trim functionality!)
Best regards
Lanchon said:
IsoRec: Isolated Recovery for the Exynos 4210 / Galaxy S2 Family
Click to expand...
Click to collapse
Badass. This is a really elegant solution - no need to reflash on every boot. Great job!
PS. It's awesome that you're also ripped. Are you a luchador in your day job?
dimoochka said:
Badass. This is a really elegant solution - no need to reflash on every boot. Great job!
PS. It's awesome that you're also ripped. Are you a luchador in your day job?
Click to expand...
Click to collapse
lol no, i'm just heavily invested in not looking the nerd i am
UPDATE: new devices, kernels, recoveries..
added:
CM 11 IsoRec-compatible kernels
CM (CWM-based) 6.0.5.1 IsoRec-compatible recoveries
for all supported devices:
d710
i777
i9100
n1000
this time i built the recoveries myself. these recoveries are the run-of-the-mill, old-style CM recoveries we all love and miss that used to come bundled with CM in the Kitkat days. they are compatible with CM 11 and CM 12.1 kernels, so you can use them with your Lollipop ROMs.
finally, i also added IsoRec disablers for the newly supported devices.
please note:
the (previously) published TWRP-i9100 recovery has a bug: adb sideload does not work.
EDIT: adb sideload works correctly on the newest i9100 TWRP (by arnab).
Wow, slick.
It seems I have a patch to add to the slim builds.
Happy flashing
-Cyril
@Lanchon
I read the OP, but it's not fully clear to me how it works. Where should I put the preferred recovery after having flashed the isorec compatible kernel?
Anyway thank you for the great job you did.
Sent from my GT-I9100 using XDA Free mobile app
@Lanchon
Latest twrp ramdisk as requested.
https://drive.google.com/file/d/0Bx_upRk6Kfw9MUU4UGdBel9xbDQ/view?usp=sharing
chrisXL said:
@Lanchon
I read the OP, but it's not fully clear to me how it works. Where should I put the preferred recovery after having flashed the isorec compatible kernel?
Anyway thank you for the great job you did.
Sent from my GT-I9100 using XDA Free mobile app
Click to expand...
Click to collapse
you flash it whenever you want, independently of the kernel. it has to be an IsoRec-compatible recovery; it CANNOT be a "legacy" (non-IsoRec; lol) monolithic kernel+recovery. look for some recoveries in the OP of this thread.
UPDATE: new TWRP for the i9100 contributed by @arnab.
thank you so much arnab!!!
cyril279 said:
Wow, slick.
It seems I have a patch to add to the slim builds.
Click to expand...
Click to collapse
thanks, that would be awesome!
Using
'kernel-Lanchon-TRIM-FreezeFix-TWRP-20160111-cm-12.1-i9100.zip'
right now.
In which order shall I flash:
1. kernel-Lanchon-TRIM-IsoRec-20160112-cm-11-i9100.zip
2. recovery-Lanchon-IsoRec-TWRP-2.8.7.0-20160113-i9100-(by-arnab).zip
3. Lanchon-IsoRec-Disabler-i9100.zip
- Which zip's will i have to put into CyanDelta to flash along with upcoming nightlies?
- Will I be able to go back to older TWRP etc. anytime?
- What is the benefit in one sentence?

Phone doesn't boot custom kernel on stock rom

Hello everyone.
I'm trying to compile from source the kernel of my phone which is an unlocked motorola g6 play codename aljeter with the stock rom (android pie). I found the kernel repository in this post https://forum.xda-developers.com/t/rom-r-v5-unofficial-aljeter-bananadroid-for-moto-g6-play.4362405/. I downloaded the toolchain in my case arm-linux-androideabi-4.9 because my phone architecture is arm.
Then i extracted the defconfig from the stock kernel obtained from the extraction of stock boot.img using AIK. After that i successfully compiled the kernel and i obtained the Image, zImage, and zImage-dtb. I unpacked the boot.img using AIK and i changed the boot.img-kernel with my zImage-dtb (and of course i renamed my zImage-dtb with boot.img-kernel). Then i repacked everything and i obtained a image-new.img. I rebooted my phone in fastboot mode and i run "fastboot boot image-new.img" to boot the new boot.img. After that the phone showed the boot logo but it immediately reboot to the stock boot.img (stock kernel). I think that the problem is related to avb but i am not sure.
Does anyone know how can i fix that?
Thanks
P.S
I also tried to compile the kernel for my tablet which is a Lenovo X606F but i obtained the same error

Categories

Resources