[DEV|WIP] Dualboot Kernel [GSM|CDMA-WIP]

Search This thread

KeiranFTW

Inactive Recognized Developer
Nov 17, 2011
2,637
2,692
28
Sunderland
Credits:
DooMLoRD - BootManager and recoveries, autorooting and his scripts
Jerpelea (FXP) - zImage (kernel), boot splash logo :)
z - busybox knowledge, and his loop mount script.

GSM Only atm, CDMA not done yet, WIP.

Download:
Dualboot Kernel GSM: http://icxperia.com/keiran/r800i/dualboot.img
Data EXT2 image (~250MB), http://icxperia.com/keiran/r800i/data.ext2

How to dualboot:
What you will need:
An SD Card
ADB
Fastboot
7zip or alternative(Archive manager on linux is good)
Notepad++(gedit is good)

First, flash the dualboot.img
Code:
fastboot flash boot dualboot.img

How to partition SD Card for dual boot:
Code:
adb shell
sdparted -es 1024M -ss 0
When prompted to accept, make sure you use a capital Y :)
This operation will wipe your sd card :O lol
when it is done, type:
Code:
exit
in the command prompt/terminal :)


Now, put the data.ext2 image in the same folder as adb is :)

Second of all, you want to mount your second SD Card partition, using your computer with USB debugging enabled do this:
Code:
adb shell
busybox mount /dev/block/mmcblk0p2 /sd-ext
exit

then push the data partition image:
Code:
adb push data.ext2 /sd-ext/data.ext2

Now you have your system partition and data image set up for dualboot, you are also running a dualboot kernel :)

next thing to do is modify a ROM for boot from SD :)
We shall use CM7 in this example :)
Unzip the ROM, and go to /META-INF/com/google/android/ then open updater-script in notepad++, it will not work otherwise
Look for the lines:
Remove these lines:
Code:
assert(getprop("ro.product.device") == "R800i" || getprop("ro.build.product") == "R800i" || getprop("ro.product.board") == "R800i" || 
       getprop("ro.product.device") == "R800a" || getprop("ro.build.product") == "R800a" || getprop("ro.product.board") == "R800a" || 
       getprop("ro.product.device") == "R800at" || getprop("ro.build.product") == "R800at" || getprop("ro.product.board") == "R800at" || 
       getprop("ro.product.device") == "zeus" || getprop("ro.build.product") == "zeus" || getprop("ro.product.board") == "zeus");
also, remove:
Code:
format("yaffs2", "MTD", "system");
also, replace:
Code:
mount("yaffs2", "MTD", "system", "/system");
with
Code:
set_perm(0, 0, 0777, "/sbin/systemsd.sh");
run_program("/sbin/systemsd.sh");
then save, then zip, then push to phone :)
Then, flash the update.zip (after doing a NANDROID) then boot phone into NAND.
To boot into SD ROM, do this:
Open terminal emulator and do the commands:
Code:
su
cd cache
cd recovery
touch dualboot
reboot
And you will reboot into SD ROM :)
You will not be able to use darktremor a2sd or any other a2sd script with any of the ROM's, but, you will be able to use standard stock rom app2sd, in CyanogenMod go into CM settings, then application then set install location to internal to avoid conflicts with .android_secure on both ROM's :)

Kernel source:
https://github.com/freexperia/semc-kernel-msm7x30
Keiran
 
Last edited:

KeiranFTW

Inactive Recognized Developer
Nov 17, 2011
2,637
2,692
28
Sunderland
Whoa....
Just done a quadrant from the rom of the SD - CM7, I got amazing IO speeds, probably because my SD card reads faster than NAND....
But, no overclock, Max,1GHz, min 144MHz, interactive:

52848b24-daf8-08c0.jpg

Look at the green IO bit... lol looks like SD can boost performance ;)

Sent from my R800i
 

nickholtus

Senior Member
Aug 26, 2011
2,407
2,469
can't wait to test it.
Wouldn't it be better to use a ICS ramdisk (or make serval kernels) so you can flash ICS and GB??
GB works also with ics ramdisk (i guess)
 

KeiranFTW

Inactive Recognized Developer
Nov 17, 2011
2,637
2,692
28
Sunderland
No, ICS requires a different ramdisk, so you would only be able to boot two of the sameish android versions, although doomlord said somethin about chrooting...

Sent from my R800i using DFR3.0.5 NAND + CM7 SELFKANG SD
 
  • Like
Reactions: NeWCuLTKiNG

KeiranFTW

Inactive Recognized Developer
Nov 17, 2011
2,637
2,692
28
Sunderland
Next on my list of development is a linux tool, ftf2rom, what it will so is unpack an ftf and convert it into a flashable zip with the kernel there also, and then there will be ramdisk editor and such...

Keiran

Sent from my R800i using DFR3.0.5 NAND + CM7 SELFKANG SD
 

agraceful

Senior Member
Mar 29, 2011
961
410
With the Xperia Play, comes an awesome gamepad, and it works as it should... on the stock rom.
So, people wanted to use CM, but they wanted touchpads, so they just kept stock. Not any more ;)

What I have basically done (basic is not the word to use):
Made a script that is executed on boot that does the following if a certain file is present:
Unmounts NAND system and data partitions.
Mounts NAND partitions to /mnt/system and /mnt/data
Mounts sd-ext mmcblk0p2 to /system
Loops the /system/data.ext2 to loop3 - remember system is now mmcblk0p2
Mounts loop3 as /data
Then removes the temp file used for telling the phone to boot into recovery :)
So, you need an ext partition on sd that will hold /system files and /data IMG containing files.
I will show you how to adapt a Rom to dualboot when I upload the kernel.

Credits go to Jerpelea for zImage and DooMLoRD for base ramdisk.

Will upload 21st, Tuesday, currently polishing and studying lol.

CDMA to follow tomorrow too :)

Oh, it works :D

Keiran


Sent from my R800i using DFR3.0.5 NAND + CM7 SELFKANG SD

Alright, I got to give it up to you on this one. This was a crazy idea and you pulled it off. Much respect for this Kerian.
 
  • Like
Reactions: kormatoes

ahmfaris27

Senior Member
Nov 28, 2011
98
2
Not really, just DFMiX might not see many new releases for a while. DFR will, and so will this kernel :)

Sent from my R800i using DFR3.0.5 NAND + CM7 SELFKANG SD

Yes! More DFR (and hopefully more frequent DFMix updates as well... ehehe..) updates! Thanks a lot man. With the touchpads working the same as the stock firmware it'll be a perfect rom. Well, almost since everything can't be perfect :D
 
Last edited:
D

DennisDroid

Guest
Need little bit help for understanding...

With this kernel it is possiblem to boot for example the STOCK .42 Firmware from NAND and CM7 or any other rom from the SD Card?

If so it is perfect, because i love stock but i like cm7 so i can switch between the two roms without wipes and kernel flashing?
 

Therev86

Senior Member
Mar 14, 2011
240
47
Need little bit help for understanding...

With this kernel it is possiblem to boot for example the STOCK .42 Firmware from NAND and CM7 or any other rom from the SD Card?

If so it is perfect, because i love stock but i like cm7 so i can switch between the two roms without wipes and kernel flashing?

The way i understand it is as long as it uses the same kernel/ramdisk it will work so stock .42 and CM7 should be fine but ICS wouldnt work

Sent from my R800i using xda premium
 

KeiranFTW

Inactive Recognized Developer
Nov 17, 2011
2,637
2,692
28
Sunderland
The way i understand it is as long as it uses the same kernel/ramdisk it will work so stock .42 and CM7 should be fine but ICS wouldnt work

Sent from my R800i using xda premium

Correct,
You could get A2SD to work with third ext partition, mmcblk0p3, but it would be pointless unless for stock ROM...
Releasing kernel and dualboot compatible CM in about 2+ hours :) need to work on it, found a problem with it :)

Sent from my R800i using DFR3.0.5 NAND + CM7 SELFKANG SD
 
D

DennisDroid

Guest
Nice work.. can you write a how to for me? :D Im happy with my play at the moment.. stock with many many games on it so i will not wipe my data :)
 

XperiaPlayer

Senior Member
Jul 26, 2011
449
116
Manchester
Excellent news :)

You could get MIUI to work with dual booting CM7 + MIUI. Basically, 3G PreLinked CM7 dual booted with MIUI and a 3G PReLinked Kernel :)

@everyone Let him at least finish it, then once it is uploaded begin to ask questions. Remember this is a development section!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 15
    Credits:
    DooMLoRD - BootManager and recoveries, autorooting and his scripts
    Jerpelea (FXP) - zImage (kernel), boot splash logo :)
    z - busybox knowledge, and his loop mount script.

    GSM Only atm, CDMA not done yet, WIP.

    Download:
    Dualboot Kernel GSM: http://icxperia.com/keiran/r800i/dualboot.img
    Data EXT2 image (~250MB), http://icxperia.com/keiran/r800i/data.ext2

    How to dualboot:
    What you will need:
    An SD Card
    ADB
    Fastboot
    7zip or alternative(Archive manager on linux is good)
    Notepad++(gedit is good)

    First, flash the dualboot.img
    Code:
    fastboot flash boot dualboot.img

    How to partition SD Card for dual boot:
    Code:
    adb shell
    sdparted -es 1024M -ss 0
    When prompted to accept, make sure you use a capital Y :)
    This operation will wipe your sd card :O lol
    when it is done, type:
    Code:
    exit
    in the command prompt/terminal :)


    Now, put the data.ext2 image in the same folder as adb is :)

    Second of all, you want to mount your second SD Card partition, using your computer with USB debugging enabled do this:
    Code:
    adb shell
    busybox mount /dev/block/mmcblk0p2 /sd-ext
    exit

    then push the data partition image:
    Code:
    adb push data.ext2 /sd-ext/data.ext2

    Now you have your system partition and data image set up for dualboot, you are also running a dualboot kernel :)

    next thing to do is modify a ROM for boot from SD :)
    We shall use CM7 in this example :)
    Unzip the ROM, and go to /META-INF/com/google/android/ then open updater-script in notepad++, it will not work otherwise
    Look for the lines:
    Remove these lines:
    Code:
    assert(getprop("ro.product.device") == "R800i" || getprop("ro.build.product") == "R800i" || getprop("ro.product.board") == "R800i" || 
           getprop("ro.product.device") == "R800a" || getprop("ro.build.product") == "R800a" || getprop("ro.product.board") == "R800a" || 
           getprop("ro.product.device") == "R800at" || getprop("ro.build.product") == "R800at" || getprop("ro.product.board") == "R800at" || 
           getprop("ro.product.device") == "zeus" || getprop("ro.build.product") == "zeus" || getprop("ro.product.board") == "zeus");
    also, remove:
    Code:
    format("yaffs2", "MTD", "system");
    also, replace:
    Code:
    mount("yaffs2", "MTD", "system", "/system");
    with
    Code:
    set_perm(0, 0, 0777, "/sbin/systemsd.sh");
    run_program("/sbin/systemsd.sh");
    then save, then zip, then push to phone :)
    Then, flash the update.zip (after doing a NANDROID) then boot phone into NAND.
    To boot into SD ROM, do this:
    Open terminal emulator and do the commands:
    Code:
    su
    cd cache
    cd recovery
    touch dualboot
    reboot
    And you will reboot into SD ROM :)
    You will not be able to use darktremor a2sd or any other a2sd script with any of the ROM's, but, you will be able to use standard stock rom app2sd, in CyanogenMod go into CM settings, then application then set install location to internal to avoid conflicts with .android_secure on both ROM's :)

    Kernel source:
    https://github.com/freexperia/semc-kernel-msm7x30
    Keiran
    6
    Whoa....
    Just done a quadrant from the rom of the SD - CM7, I got amazing IO speeds, probably because my SD card reads faster than NAND....
    But, no overclock, Max,1GHz, min 144MHz, interactive:

    52848b24-daf8-08c0.jpg

    Look at the green IO bit... lol looks like SD can boost performance ;)

    Sent from my R800i
    4
    I am working on this, but I need some help from DooMLoRD or keiranftw

    Sent from my LT22i using xda app-developers app
    3
    i was thinking about creating a aroma based install for this / android app for this to make it really easy to dualboot. will start this when v2 is released

    KEIRANFTW do you know if any1 other than you has got this working yet? i keep trying but keep failing. also

    OFF-TOPIC but your forum on your site aint working. Table './eddie_dfg/smf_sessions' is marked as crashed and should be repaired
    3
    Keiran, once you are done with exams, could you develop the dualboot kernel for AOSP ICS ROMs?

    Yes,
    Maybe even more sensible method too :)


    Sent from my Xperia Play using Tapatalk 2