Pages

Labels

Sunday, February 26, 2012

Dual Boot Your Favorite ROMs on Your Xperia Play


Anyone with on XDA will have undoubtedly gone through quite a few different ROMs in their respective devices. More often than not, this is partially due to us never being completely happy with a single one. It could be because the theme doesn’t necessarily appeal to us, or maybe a you need to use a ROM due to a certain feature, such as EPST on Sense ROMs. For this purpose, there is always the option of dual booting (assuming that your device can do it) What if you could just switch back and forth ROMs easily on your Xperia Play? Lets say that you are torn between rooted stock and AOSP but you really cannot make up your mind on which one to use daily. Well, thanks to the efforts of  XDA member KeiranFTW, you now have the ability to switch between two ROMs at your leisure. The dev has prepared a specialty kernel that will allow the device to have the option to dual boot from SD card.



The installation process is neatly laid out for anyone who can read and understand ADB commands, so missing out a step is really not an option unless you are not paying attention. As an added bonus, it seems that the EXT2 image that must be used after partitioning the SD card will give your device a nice I/O boost, which can be seen in Quadrant scores. All files, instructions, and requirements are in the OP, so please read it carefully.

If you have any feedback or suggestions for the dev, please make sure that you leave them on the thread.

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)

You can find more information in the kernel thread.

Want something published in the Portal? Contact any News Writer.

Thanks Leraeniesh for the tip!


Steps:



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 


 Keiran


source:http://forum.xda-developers.com/showthread.php?t=1508017

0 comments:

Post a Comment