Related
Everything Should Be Functioning Properly & Some Extra Features Have Been Added.
I love Amon_RA's recovery images and decided to make one using his source code for the Incredible to give us another option other than clockwork. This is my 2nd recovery I've made since switching to android from windows mobile about two weeks ago. Lg ally was the other Link here . This one I built with an ext-4 kernel I compiled so you can partition apps2sd with ext4 in recovery but remember your rom's kernel must support ext-4 too.
Link to Amon_RA's nexus one recovery thread as it has a good description of what all the features are Link here
To use if you have s-off download the PB31IMG_RA-inc-v1.7.0.6_GNM.zip and unzip it to get the PB31IMG.zip and copy that to the root of your sdcard. Boot phone holding down vol down and select yes to update.
To use with unrevoked recovery reflasher download the recovery-RA-v1.7.0.5.img and in recovery reflasher select file and custom recovery and navigate to where you downloaded the file.
Special Thanks:
Amon_RA for his source code Buy him a redbull
Team Unrevoked for the Recovery Reflasher and the S-off Link
Koush source code
worstenbrood source code for modded desire recovery
changelog v1.7.0.2 :
fixed data wiping and cache wiping as they are ext3 partitions not yaffs2
currently wiping cache can only be done with wipe cache not wipe data/factory reset
Thanks koush for the help
fixed flashing update.zips
changelog V1.7.0.3:
fixed small error in sd partitioning script
changelog V1.7.0.4 see attached pics
Added usb mount of phone's internal storage
Added toggle of signature verification on update.zips
Added gui mount umount menu
changelog V1.7.0.5
Changed nandroid-mobile.sh script to correctly backup and restore /data/data and backup and restore .android_secure on /emmc if selected.
Changelog V1.7.0.6
Fixed typo that caused nandroid to always restore most current backup.
Changes v1.8.1
Supports both Amoled and SLCD
Now supports Flashing from Emmc or Sdcard!!!
Has zip directory browsing from clockwork so zips are no longer needed in root of sdcard (thanks Koush & Amon-Ra)
Wipe Menu no longer uses scripts
Fix error in script for sd-ext upgrading
Fixed The sd-ext issues??
Updated the PB31IMG to be compatible with 3.26.605.1 and prior
Also in rom manager too!!!
Changes 2.2.1
Updated UI
Fixed zip progress menu in flashing
Fixed .android_secure backup back to sdcard from /emmc (was changed in the 11/10 htc update)
Expanded the UI for fuller listing of sdcard zips & dirs. (Thanks Amon_RA)
Still recommend making a folder called Custom_Roms on sd and placing update.zip's there
Selectable nandroid partitons gui for backup (Thanks Amon_Ra)
Now backs up sd-ext partiton as a whole if that option is selected in nandroid.
Downloadable from rom manager!!!
Fully working with gingerbread/cm7 and wipes all partitons correctly.
Added menu option to format /data partiton to ext4 and is able to reformat back to ext3 too. (See notes below)
Above option for ext4 requires a kernel with ext4 support and changing the mount line in init.inc.rc in boot.img/ramdisk from ext3 to ext4. This will enable mounting of the ext4 /data as ext4 instead of having the ext4 partition mounted as ext3. This formatting will persist through rom flashing and /data wiping but can be reverted via ext3 reformat option. Warning a non ext4 enabled kernel will not be able to mount an ext4 /data partition. If a ext3 data nandroid is restored to an ext4 formatted data partiton all the old files will work as ext3 and anything newly added will be in ext4 (best to start /data fresh to get full benefit of ext4 fs).
Example for changing init.inc.rc line in boot.img for cm7 (similar for stock rom on froyo too)
Code:
mount ext3 /dev/block/mmcblk0p1 /data wait nosuid noatime nodiratime
change to
Code:
mount ext4 /dev/block/mmcblk0p1 /data wait nosuid noatime nodiratime
Then repack boot.img and reflash.
Change log 3.02:
Nandroid now has the option to backup & restore .android_secure on /sdcard or /emmc (stock GB has .android_secure on /emmc)
Added busybox symlinks for mount & umount (now sense 3.0 roms that use busybox to mount in updater script work)
Added script to (re)format /emmc as ext3, ext4 or fat32 (run "partemmc help" from adb shell for use)
Added options in wipe menu to wipe /sdcard & /emmc
Wiping all or wipe .android_secure wipes it on both /sdcard and /emmc
Changed ui back to cyan colors.
Updated /data as ext4 to wipe /datadata also.
Nandroid now suppressed backup of /datadata also when selecting to not backup /data partition
File system type for /cache, /data, /sd-ext and /emmc are auto detected so you can use alternate filesystems (rom kernel & boot.img permitting)
As always properly wipes and you can use update-script or updater-script (amend or edify)
Added flash_eraseall binary this can be used to fix a corrupted nand mtd(not emmc) by erasing it then you can reflash it. Use is "adb shell flash_eraseall /dev/mtd/mtdX" where X is the number of the mtd you wish to erase.
Changelog: 3.06
Added ability to restore CWM backups.
Compiled for armv7a-neon so its faster.
Rewrote the ext3|4 menu to use C not scripts
Added a developer menu:
Developer menu:
Make and flash boot from zimage : This makes a mkboot folder on sdcard and mounts sdcard as mass storage then you copy a zImage and kernel modules into this folder and it will create a new boot like anykernel and flash it.
Toggle full ext wipe : This toggles between doing a quick wipe (default) of ext partitions or a full wipe which reformats them.
Install su & superuser: Installs or fixes su & superuser install (removes old if exists)
Install eng (unguarded) su: Installs engineering su that doesn't use superuser (removes old su & superuser if exists)
Reboot to bootloader: reboots to bootloader/hboot
Reboot recovery : reboots phone back into recovery
Downloads:
Source
recovery-ra-dinc-3.06-gnm.img
MD5 : c280fc5cfacf1018211f9ed4ffd42d87 recovery-ra-dinc-3.06-gnm.img
Old PB31IMG_RA-inc-v1.7.0.3_GNM.zip
MD5= d8aae2598c6f7b3f441bbea2ba35beb1
Old PB31IMG_RA-inc-v1.7.0.4_GNM.zip
MD5= 92d187e7b4bc6553e6daa369af8e55ce
Old PB31IMG_RA-inc-v1.7.0.5_GNM.zip
MD5= 832a1980c30a7dd7dd7751020bf2fb45
Old recovery-RA-v1.7.0.5_GNM.img for recovery reflasher
MD5=30a78ffca87de656a6a77246af6ff6e8
Old PB31IMG_RA_inc_1.7.0.6.zip
MD5= 2f0210ee1ede2bfd0f80af5f07c6da5c
Old PB31IMG_RA_inc_1.8.1_GNM.zip
MD5 9d6da2a06219651eb9be82872570b510
Old PB31IMG_RA_inc_v2.2.1_GNM.zip
MD5 84b5bae5c5adc4936e3a48c742cc03e4
PB31IMG-RA-3.02-GNM.zip
MD5 3efae04dc59bdaf4ea7bb18aea5b208d PB31IMG-RA-3.02-GNM.zip
Buy me a energy drink Follow me on twitter @getitnowmarket
Has anyone tested??
• Sent from my Droid Incredible running Sky Raider 2.5.2 •
thatdudebutch said:
Has anyone tested??
• Sent from my Droid Incredible running Sky Raider 2.5.2 •
Click to expand...
Click to collapse
I just tired it and it works perfectly, i just flashed the img via 3.1
Amazing work! Finally! I hate clockwork but love amon ra. Nice work!
what's the difference between this and clockwork? i'm not trying to instigate anything. clockwork is the only recovery that i've used but from reading that linked thread it looks like maybe it has a few more features? i'm not sure. the UI between the two seem somewhat similar too.
Awesome. If Clockwork ever fails me, I have another option. Thank you.
Dude, this is awesome. Finally! Source?
Haven't tried it, but it's always nice to have options. Thanks for taking the time to put this together!
update keeps failing for me and a couple other in the IRC.
borgey420 said:
update keeps failing for me and a couple other in the IRC.
Click to expand...
Click to collapse
same here. tried to flash using reflash, pb31img, and flash_image. all fail.
scuccia said:
same here. tried to flash using reflash, pb31img, and flash_image. all fail.
Click to expand...
Click to collapse
I was able to download, but md5sum didn't match
Looking into it think I uploaded the wrong binary version. Fixed and am going to re-upload
Is there a way to go back to clockwork if we don't like this.
Sent from my Incredible using XDA App
Ruben1123 said:
Is there a way to go back to clockwork if we don't like this.
Sent from my Incredible using XDA App
Click to expand...
Click to collapse
http://unrevoked.com/rootwiki/doku.php/public/forever
under the reinstall factory recovery there is a link to the clockwork pb31img... almost at the bottom of the page... its there so you can do it after you load an official update with s-off
Thanks for this. You helped me with my Ally already (which works great now), and now the Incredible. Thanks again!
Very well done, sir! I was missing my Amon_RA from my G1 days and this has hit the spot. I checked the md5 sums, applied your image file with flash_image... then powered off and manually booted into recovery from bootloader/hboot, to avoid boot mode 3, a little lesson also learned from my G1 days
Now all that's left is to put in a nice blue care bear for a background and remove the plug for your company and we'll be all set!
Sent from my Incredible using XDA App
am I stupid, or is the link not up?
Im having trouble with the wipe data command as "userdata" mtd on this phone is called "datadata" and is not wiping. Will re-release once fixed. Other than that its fully functional.
is the zip up??? If not can someone provide a mirror
As far a features go, what's the difference between this and clockwork?
-Sent from your mom's phone.
The basic idea of this mod is moving all partitions to the SD card, and running the full OS from the SD card.
There are many reasons why not to do this and probably is a bad idea, but the main reason behind this mod is just a proof of concept that can potentially result in a better internal and external memory utilization and speed improvements.
Reasons I can think of for not doing this:
- Reduced responsiveness and overall speed.
- Over stress on the SD card that can potentially leed to permanent damage to the card.
- The need to use modified boot and recovery images, thus leading to an install incompatible with any rom update (as it is) out there.
- Reduced battery autonomy.
- Many more I can't think of right now.
Reasons to do this:
- Because we can.
- As a proof of concept.
- For developing purposes.
- We get the ability to switch between 2 installations just by switching the SD card (of the same rom or roms with compatible boot images: kernel+ramdisk).
Don't do any of this if you don't know what you are doing!!!
Simplified steps (I've only tested this with Mik's CM7 (betas 6.2 and 6.3) + ClockWorkMod recovery on a Ubuntu machine):
- Download and flash ClockWorkMod recovery.
- Download and flash Mik's CM7.
- Do a full backup from recovery.
- Turn the phone off.
- Take out the SD card and put it on a Card reader on your PC.
- Backup the SD Card contents (including the full backup).
- Use Gparted (or any partition manager that has support for ext4 partition creation) to create the following partition structure:
Code:
num mount point size type
1: /sdcard REST fat32
2: /data 500M ext4
3: /system 190M ext4
4: /cache 64M ext4
The partition number is important, so you should calculate the fat32 partition beforehand or resize the existing one.
- Put new boot and recovery images on the fat32 partition. *
- Put the card on the phone and boot into recovery.
- Mount the sdcard trough menu.
- Connect the phone to your pc and start adb shell.
- Flash custom boot and recovery images:
Code:
flash_image boot /sdcard/boot-everything2sd.img
flash_image recovery /sdcard/recovery-everything2sd.img
- Reboot recovery.
- Through menu, mount all partitions.
- Connect trough adb shell and copy your data:
Code:
adb shell
cp -a /int-cache/* /cache/
cp -a /int-system/* /system/
cp -a /int-data/* /data/
- In adb shell, remove the sd_ext mount script:
Code:
rm /system/etc/init.d/05mountsd
- Reboot the phone.
Off course, no other method of storing the apps on the SD is desired as they are already there.
* I've attached custom boot and recovery images for Mik's CWM and CM7 beta 6.2 (updated boot images to Mik's CM7.02 beta 6.3 in post #3), but, the steps for creating them are next:
- Extract the original images (boot.img and recovery.img) from the root of the downloaded zips (signed-recovery.zip and cyanogen_thunderg-ota-eng.mik.zip).
- Unpack the images following this guide: HOWTO: Unpack, Edit, and Re-Pack Boot Images: Alternative Method (Perl scripts are attached, you'll need compiled mkbootfs and mkbootimg for your OS).
- On recovery ramdisk, change the etc/recovery.fstab file as follows:
Code:
# mnt pnt fstype device [device2] [fstype2]
/boot mtd boot
/cache ext4 /dev/block/mmcblk0p4
/data ext4 /dev/block/mmcblk0p2
/misc mtd misc
/recovery mtd recovery
/sdcard vfat /dev/block/mmcblk0p1 /dev/block/mmcblk0 ext4
/system ext4 /dev/block/mmcblk0p3
/int-cache yaffs2 cache
/int-data yaffs2 userdata
/int-system yaffs2 system
- On boot ramdisk, change the init.rc file as follows (diff output):
Code:
[email protected]:~/Descargas/bootimages$ diff boot.img-orig_ramdisk/init.rc boot.img-ramdisk/init.rc
22d21
< export SD_EXT_DIRECTORY /sd-ext
68,69d66
< mkdir /sd-ext 0771 system system
<
100,103c97,100
< mount yaffs2 [email protected] /system
< mount yaffs2 [email protected] /system ro remount
< mount yaffs2 [email protected] /data nosuid nodev
< mount yaffs2 [email protected] /cache nosuid nodev
---
> mount ext4 /dev/block/mmcblk0p3 /system
> mount ext4 /dev/block/mmcblk0p3 /system ro remount
> mount ext4 /dev/block/mmcblk0p2 /data nosuid nodev
> mount ext4 /dev/block/mmcblk0p4 /cache nosuid nodev
- Recreate the ramdisks and images following the guide posted above, changing the mkbootimg command line to (notice the base and cmdline parameters; for recovery, change boot to recovery on all instances):
Code:
mkbootimg --base 0x12800000 --cmdline 'mem=471M console=ttyMSM2,115200n8 androidboot.hardware=thunderg' --kernel boot.img-kernel --ramdisk boot.img-ramdisk.gz -o boot-new.img
Ahaha another sleepless night ahead to test this out. Any Quadrant Advanced I/O score for comparison?
I've updated boot images to Mik's CM7.02 beta 6.3, attached below.
I'm going to run a Quadrant Advanced and let you know. Anyway, I don't think I will get good results, as my SD card is cheap and buggy, half the time it doesn't get mounted, with or without this mod. Also, I think we'll get better scores with your tweaks, especially with the modded libsqlite.so.
The idea behind this is not to get impressive results or leave it as a definitive mod (as it is right now). Instead, the idea I have is to start moving some things back to the internal memory, for instance, mounting [email protected] as /data/dalvik-cache (just an idea). Basically, leaving the things that need fast reading times, but infrequent writes in the SD, and the things that are constantly being written to, in the internal memory.
Seems awesome. I already booted up perfectly with the modded .imgs, no issues.
so what class of sd card do you preffer?
still class 4 above?
well, sorry about what im going to say , but if **** happened and luckily sd card got corrupted, then the phone does as well?
ive not read all of your first post,
but if ever we are changing sd cards, like example upgrading from 4g-8g,
is it necessary to repeat the whole process or copy paste is enough?(i bet not due to ext)
cmangalos said:
so what class of sd card do you preffer?
still class 4 above?
well, sorry about what im going to say , but if **** happened and luckily sd card got corrupted, then the phone does as well?
ive not read all of your first post,
but if ever we are changing sd cards, like example upgrading from 4g-8g,
is it necessary to repeat the whole process or copy paste is enough?(i bet not due to ext)
Click to expand...
Click to collapse
If **** happened you could mount it in a computer with a card reader and perform a disk check + recovery. If the sd card broke, well.. I think there's still hope, since you may boot in recovery and replace the mount points back to the internal memory ( right ? )
As for the storage upgrade, well, it's not exactly copy-paste but you should be able to duplicate the partitions without much hassle..
I really like this idea,we could get 3000+ quadrant score
But can be potentially dangerous. If anything goes wrong i think that Phone can't boot anymore.
how abt two separate roms in 6 separate partitions ???? is the bootloader cracked ??? Can we have a grub like menu to select two roms ???Way 2: Maybe somebody cud mod android's initramfs and add options there to select two different fstabs ...just a thought
a dual boot would be cool... one rom on the internal nand memory and the other on SD card...
Having fastboot disabled is such a pain in the ass...
ciaox said:
I really like this idea,we could get 3000+ quadrant score
Click to expand...
Click to collapse
Not me, because my SD card is very buggy. Anyway, it depends very much on the card, the card reader and the kernel. Anyway, it's just a proof of concept and it opens a great window for experimentation.
ciaox said:
But can be potentially dangerous. If anything goes wrong i think that Phone can't boot anymore.
Click to expand...
Click to collapse
Not at all, recovery can boot even if the SD card is damaged or not present. Then you can flash the original recovery, boot it and flash any ROM without this mod.
Steps:
- Extract recovery.img from your desired custom recovery.
- Boot recovery.
- Mount /int-cache from mounts and storage menu.
Code:
adb push recovery.img /int-cache/recovery.img
adb shell
flash_image recovery /int-cache/recovery.img
- Reboot recovery
- Flash desired ROM from any SD card.
OR: Just flash an original (released by LG) ROM through emergency mode.
sarfaraz1989 said:
how abt two separate roms in 6 separate partitions ???? is the bootloader cracked ??? Can we have a grub like menu to select two roms ???Way 2: Maybe somebody cud mod android's initramfs and add options there to select two different fstabs ...just a thought
Click to expand...
Click to collapse
Bootloader isn't cracked yet, so it would have to be implemented on the boot.img (kernel and/or ramdisk), and I don't know how. Right now is easier to swith SD cards. Anyway, ROMs should be able to share boot.img (kernel + ramdisk).
ciaox said:
Having fastboot disabled is such a pain in the ass...
Click to expand...
Click to collapse
+1. But bootloader isn't cracked yet.
Just a little heads up, but if anyone is paying attention to the Nook Color development, this is exactly how the boot process on that device works, I am running one os off the sd card and if I remove it I am back to stock. The main point of my brining this up is you create the sd card with all it's partitions by flashing an image of the sd card with the WinImage application on windows. Might at least save you some steps. Hope this helps.
tsukisan said:
Just a little heads up, but if anyone is paying attention to the Nook Color development, this is exactly how the boot process on that device works, I am running one os off the sd card and if I remove it I am back to stock. The main point of my brining this up is you create the sd card with all it's partitions by flashing an image of the sd card with the WinImage application on windows. Might at least save you some steps. Hope this helps.
Click to expand...
Click to collapse
Possibilities seem to be limitless.
Sent from my LG-P500 using Tapatalk
I'm trying some custom roms, derived from cyanogen 10.1 i.e. jellybeam 4.2.1 (a new flavour...)
here i see a new folder in my filesystem: /data/app-lib
where are extracted libs from installed apk.
In previous version this files were in /data/data/<app_name>/lib
I 'll have some problems when using tool like Link2sd - that replace this files with simbolik links - now those paths doesn't match anymore, until link2sd will be updated....
Could someone confirm this ?
thank you...
are you sure link2sd is not updated for this thing
jb is out quite a time ago and I think link2sd is updated to ticker this out
i have android 4.1.2 rom but it doesn't have any app-lib folder in /data partition
dheeraj (dhlalit11) said:
are you sure link2sd is not updated for this thing
jb is out quite a time ago and I think link2sd is updated to ticker this out
Click to expand...
Click to collapse
no, i'm not sure it is updated or not...... but it does not work.
dheeraj (dhlalit11) said:
i have android 4.1.2 rom but it doesn't have any app-lib folder in /data partition
Click to expand...
Click to collapse
for what i see, this difference exist from in 4.2.1=>cyanogen 10.1 (after 4.1.2=>cyanogen 10)
link2sd works for me on cm10.1 (android 4.2) so i highly doubt its not updated...
Hi!
I have the same problem on gio cm10.1
link2sd.info/faq
I found in the middle of page:
Q. Library files that I linked get unlinked after restarting my phone, why?
See link for answer, but at the end of that topic u can see this:
"You can use "relink lib files at boot option" as workaround."
What isn't help for me, because the free space stays at the same Mbs.
After relink lib files I recommend to use a root browser to delete the unnecessary folders.
But the sad news is that you need to do this after every reboot.
Yeah that's normal
You will need to make a script and have to out in init.d
In that way everything would be done automatically
dheeraj (dhlalit11) said:
Yeah that's normal
You will need to make a script and have to out in init.d
In that way everything would be done automatically
Click to expand...
Click to collapse
Could you give some advice of how can we do it, please?
edit: I found the 11link2sd file in the init.d folder which contains the following:
Code:
#!/system/bin/sh
#added by link2sd
LOG=/data/link2sd-11link2sd.log
echo "$(date) mounting..." > $LOG
mount -t ext2 -o rw /dev/block/vold/179:2 /data/sdext2 1>>$LOG 2>>$LOG
mount -t ext2 -o rw /dev/block/mmcblk0p2 /data/sdext2 1>>$LOG 2>>$LOG
mount >> $LOG
echo "$(date) mount finished" >> $LOG
Maybe the folder is not mounted because you have chosen the SD partition as ext2 (in link2sd app)
Where your sdcard partition could be of ext3/ext4
Review this
In minitools PW i partitioned the 2nd part to ext2 because the stock GB does not support ext3/4. (I have a class 4 sdhc card)
So now i heve to repartition my sd or simply change the setup in link2sd to ext3/4?
Who says ext3 is not supported (don't think so)
Try to run that app at boot with the help of script manager
It may work
Uhh... I'm a newbie yet.
I'll try.
Thank you!:laugh:
When the first time i set 2nd parition to ext3 on stock GB 2.3.3 and tried to connect to link2sd it said "your device does not support ext4!"
So now i have to repartition my card on pc?
the ext support depends on which kernel i have?
Yayy!!! Repartitioned the ext2 to ext4 and everythings ok.
After repartitioning i needed some reboot and relink in link2sd, but now it's awesome. :good:
After the third reboot my memory goes lower and lower. Now i have 93,43mb free space in /data with (all) 52 apps linked.
I made a backup in TB before the partitioning and restored later.
DSP manager,E-mail,Exchange2 and lockClock apks were deleted too and the market app was converted to user app so the system' size goes lower too. :laugh:
FIRST OF ALL, we should say thanks to @alvinhochun 's work on porting kexec hardboot patch to Xperia M. His original thread is here: http://forum.xda-developers.com/showthread.php?t=2568151
And @Tasssadar who has ported kexec hardboot patch on MSM chips. Original thread is here: http://forum.xda-developers.com/nexus-4/orig-development/kexec-hardboot-patch-t2472316/post46223952
As for the kernel patch and kexec binary for TX, they are here: http://forum.xda-developers.com/showthread.php?t=2747215
OK let's begin our tour on TX...
0. Disclaimer
This is a rather dangerous hack. I'm not responsible for data loss, broken SD cards, dead internal storage or bricked phones. Try this at your own risk. Proceed only when you know what you are doing.
1. Requirements
a. ROM with “kexec hardboot” patched kernel. My OmniROM build will do the job. Since Alx31Tse is also using my kernel source for TX, the Carbon builds for TX may be capable of handling this as well. This ROM should be installed into internal storage : just flash it in recovery as usual.b. External MicroSD card which is big enough for your ROMs. One ROM takes up ~4GB space.c. Some basic knowledge of partitions, device nodes, ramdisk modding(check this thread by letama: http://forum.xda-developers.com/showthread.php?t=2418893).
2. Partitioning the external sdcard
a. Plan the partitions
Each ROM need three partitions : system, data and cache. You need at least 1.4GB system + 2GB data + 400MB cache for stock ROMs. The system partition for third-party ROMs can be shrinked to ~900MB. Of course you can set your own data partition size if 2GB does not suit your needs. The space left can be used for storing data just like a normal sdcard.
For example, I'm using a 16GB card and going to install two stock ROMs (9.1.B.1.67 + 9.2.A.0.295). So I have to create at least 6 partitions for them:
1.4GB system for 295
2GB data for 295
400MB cache for 295
1.4GB system for 67
2GB data for 67
400MB cache for 67
There is ~8GB left after all these partitions. This can be used as a normal sdcard. Just create another partition for it.
b. Go partitioning it!
Everyone has his own way of doing this. I prefer using a USB card reader and Disk Utility that comes with Ubuntu.
Erase the card and initialize it with GUID Partition Table (GPT). Of course you can use MBR, but I didn't test it. Be careful in the following steps if you choose MBR.
Create the “normal sdcard” partition. In my example, create a 8GB partition here and format it with FAT32. THIS PARTITION SHOULD BE THE FIRST ONE ON THE CARD! Otherwise Android system may not be able to recognize it.
Create the partitions for guest systems. There are no particular order for the partitions. Just make sure you remember their order. DO NOT FORMAT them for now.
In my example:
PART 1: 8GB, FAT32
PART 2: 1.4GB unformatted
PART 3: 2GB unformatted
PART 4: 400MB unformatted
PART 5: 1.4GB unformatted
PART 6: 2GB unformatted
PART 7: 400MB unformatted
3. Kernel mods for guest systems
For each guest system:
a. Unpack its kernel.
If you are going to install a full stock ROM, please choose a corresponding kernel with recovery built-in in Android Development section.
If you are going to install a third-party ROM (OmniROM, CM etc) or customized stock ROM (Rockers etc), chances are that their kernels have recovery built-in already and you can proceed.
Now unpack the kernel.
We have zImage(sec0.bin), ramdisk(sec1.bin) now. The rest can be ignored.
b. Modify the mount entries in fstab (and other files)
fstab is the file that suggests the real device for the /system, /data and /cache mount points. Modding it will make it possible to mount the partitions other than the ones in internal storage on /system /data and /cache, so that we can separate different systems into different partitions.
Now you have to be clear about “how the partitions on external card will be presented in your phone” (their device nodes). In my example (GPT with 7 partitions):
PART 1: 8GB → /dev/block/mmcblk1p1
PART 2: 1.4GB → /dev/block/mmcblk1p2
PART 3: 2GB → /dev/block/mmcblk1p3
PART 4: 400MB → /dev/block/mmcblk1p4
PART 5: 1.4GB → /dev/block/mmcblk1p5
PART 6: 2GB → /dev/block/mmcblk1p6
PART 7: 400MB → /dev/block/mmcblk1p7
As has been mentioned above, mmcblk1p1 is for normal file storage, p2~p4 is for 295, p5~p7 is for 67.
Files that need modding:
(sec1.bin/sbin/ramdisk.cpio) /fstab, /fstab.qcom, /init.target.rc
Click to expand...
Click to collapse
(sec1.bin/sbin/ramdisk-recovery.cpio) /fstab, /fstab.qcom, /etc/recovery.fstab, /etc/twrp.fstab
Click to expand...
Click to collapse
The fstabs are easy to deal with. Just change the block device name for /system /cache and /data to /dev/block/mmcblk1p* accordingly. The init.target.rc has only one line that should be modded. For example,
FOR 9.1.B.1.67 in my example:
ramdisk.cpio/fstab:
/data ext4 /dev/block/mmcblk1p6
/cache ext4 /dev/block/mmcblk1p7
/boot/modem_fs1 raw /dev/block/platform/msm_sdcc.1/by-name/modemst1
/boot/modem_fs2 raw /dev/block/platform/msm_sdcc.1/by-name/modemst2
Click to expand...
Click to collapse
ramdisk.cpio/fstab.qcom:
/dev/block/mmcblk1p5 /system ext4 ro,barrier=1,discard wait,check
/dev/block/mmcblk1p6 /data ext4 nosuid,nodev,noatime,barrier=1,noauto_da_alloc,discard wait,check,encryptable=footer
/dev/block/mmcblk1p7 /cache ext4 nosuid,nodev,noatime,barrier=1,discard wait,check
/dev/block/platform/msm_sdcc.1/by-name/SDCard /mnt/int_storage ext4 nosuid,nodev,barrier=1,noauto_da_alloc,discard wait,check
Click to expand...
Click to collapse
ramdisk.cpio/init.target.rc:
(SEARCH FOR /system)
on post-fs
mount ext4 /dev/block/mmcblk1p5 /system ro remount barrier=1
Click to expand...
Click to collapse
Just do the same for ramdisk-recovery.cpio. For example:
ramdisk-recovery.cpio/etc/recovery.fstab
/boot emmc /dev/block/mmcblk0p4
/system ext4 /dev/block/mmcblk1p5
/cache ext4 /dev/block/mmcblk1p7
/data ext4 /dev/block/mmcblk1p6 length=-16384
/sdcard ext4 /dev/block/mmcblk0p15
/external_sd auto /dev/block/mmcblk1p1 /dev/block/mmcblk1
Click to expand...
Click to collapse
And replace mmcblk1p5~p7 with p2~p4 then do it all again for 9.2.A.0.295's ramdisk.cpio & ramdisk-recovery.cpio
NOTE: All these fstab and rc files should be rw-r—r-- and owned by root:root. Otherwise the system may fail to boot.
Now repack the ramdisk.cpio, ramdisk-recovery.cpio and then the whole ramdisk.
4. Installing the guest systems
Take notice of the texts in red. Change them to fit your needs.
a. Preparing the guest systemsIf you are installing full stock ROM (FTF format), you can use Flashtool to dump the system image (Flashtool > Tools > Sin Editor, load system.sin from FTF archive and dump data). Then write the image to the sdcard by “dd if=system.ext4 of=/dev/sdb2“ on the computer.
If you are installing ROMs in ZIP format, you need to modify updater-script and replace all (for 9.1.B.1.67 in my example)
/dev/block/mmcblk0p12 or /dev/block/platform/msm_sdcc.1/by-name/System to /dev/block/mmcblk1p5
Click to expand...
Click to collapse
/dev/block/mmcblk0p13 or /dev/block/platform/msm_sdcc.1/by-name/Cache to /dev/block/mmcblk1p7
Click to expand...
Click to collapse
/dev/block/mmcblk0p14 or /dev/block/platform/msm_sdcc.1/by-name/Userdata to /dev/block/mmcblk1p6
Click to expand...
Click to collapse
And
remove /dev/block/mmcblk0p4 or /dev/block/platform/msm_sdcc.1/by-name/Kernel formatting/writing lines
Click to expand...
Click to collapse
Then repack the ROM and push it into phone's internal sdcard.
b. Boot the guest kernel/systemRemember we have zImage and modded ramdisk for each guest system? adb push them to /data partition. The kexec binary is needed as well. Now you can use the kexec binary(check the beginning of this thread) to boot your guest kernel and then recovery.
For example:
I pushed 295 kernel zImage to /data/boot4.3/zImage-stock, modded ramdisk to /data/boot4.3/initrd-stock, and kexec binary to /data/kexec. Now execute as root:
Code:
cd /data
chmod 755 kexec
busybox sync
busybox mount -o remount,ro /system
busybox mount -o remount,ro /cache
busybox mount -o remount,ro /data
busybox sync
./kexec --load-hardboot [COLOR="Red"]./boot4.3/zImage-stock[/COLOR] –initrd=[COLOR="Red"]./boot4.3/initrd-stock[/COLOR] --mem-min=0x85000000 --command-line="`cat /proc/cmdline`"
busybox sync
./kexec -e # phone reboots and guest kernel (295) starts
NOTE: the guest kernel's cmdline may not be exactly the same as the host one. However, it doesn't matter much. 67 and 295 both boot fine using the same cmdline as OmniROM. Since bootloader will append some parameters to the command line, using guest's sec3 without appending these parameters manually is not a good idea.
c. Preparing filesystems and installing ROMs in ZIPAfter the phone reboots, press Vol buttons at purple LED to go into recovery. Now you are in the recovery for your guest system (295).
FORMAT (not wipe) /data and /cache there. For ZIP ROMs you need to format /system as well.
Then install the modded ZIP file if needed. You can also flash SuperSU or anything else to this guest system in the recovery (remember to check if there are wrong block device paths in updater-script).
After finishing the installation of one guest system, reboot and you will go into the host ROM. Execute the commands again and specific the next guest system's zImage and ramdisk to boot into the next guest system. Then do the formatting and flashing things as described above.
5. Boot into guest systems
Once you finish installing all the guest systems, reboot. Then in the host ROM you can execute the commands in Step 4 again to boot into the corresponding guest system. Don't press any key after the reboot. If there's nothing wrong, you will see the bootanimation and then the Android system. Since external sdcards may not be as fast as internal storage, the first boot may take very long time. If you see the bootanimation, just be patient and it will boot up finally.
===========================================================
I know I can't speak English well and it's hard to make myself clear. So if you feel confused, please post your questions here so that everyone who knows the answer will be able to help.
And if you are skilled in Android things, you can choose your own way to achieve the goal:
Partition the sdcard → Mod fstsb and rcs to mount partitions on sdcard to /system etc → Mod the ROM installation script → Boot into guest recovery to format(initialize) data & cache &system and flash ROM → Boot into the guest Android OS
Click to expand...
Click to collapse
This is a little bit complicated. But I do hope this will add more fun to our device
Thanks for your sharing
got it
Although this is labeled for the Xperia TX, after reading through everything, it looks like this works on all devices, you just have to change a few things. Good job putting this together! (Even though I don't have an Xperia TX)
r3pwn said:
Although this is labeled for the Xperia TX, after reading through everything, it looks like this works on all devices, you just have to change a few things. Good job putting this together! (Even though I don't have an Xperia TX)
Click to expand...
Click to collapse
Yeah, it seems that the guide applies to all devices with patched kernels
updateing said:
Yeah, it seems that the guide applies to all devices with patched kernels
Click to expand...
Click to collapse
This guide is nice, full of content, and detailed, but wouldn't it have been easier, though, to just make a MultiROM port?
r3pwn said:
This guide is nice, full of content, and detailed, but wouldn't it have been easier, though, to just make a MultiROM port?
Click to expand...
Click to collapse
I have thought of porting MultiROM, but I'm running a tight schedule...sorry
Whether this Xperia V can also be made from ??
Mircinko96 said:
Whether this Xperia V can also be made from ??
Click to expand...
Click to collapse
It's applicable to Xperia V in theory. But you need a kernel with kexec hardboot patch, which hasn't appeared yet (as far as I have seen). If you know how to compile a kernel, you can try patching the kernel yourself.
.........
do I need linux to unpack kernel?
Link2SD GUIDE
ROOTED DEVICES ONLY
Link2SD is a good solution to save the contents of your internal memory, I know we have a lot but its a good idea in the case of saving more space on your internal memory.
Back up your external sd contents before proceeding!
STEP 1
Install these:
https://play.google.com/store/apps/details?id=stericson.busybox
https://play.google.com/store/apps/details?id=com.sylkat.AParted
https://play.google.com/store/apps/details?id=com.broodplank.initdtoggler
https://play.google.com/store/apps/details?id=jackpal.androidterm
STEP 2
If you've already installed busybox, skip this step.
Install busybox using the busybox installer into /system/xbin
STEP 3
After install, unmount your external sd card from System/Storage/Unmount SD Card
THEN, unmount your external sdcard and sdext2 partition if you have one, from terminal emulator.
Thsi varies from ROM to ROM, I'm on CM11, so I run these commands
Code:
mount -o remount,ro /storage/sdcard1
umount /storage/sdcard1
mount -o remount,ro /data/sdext2
umount /data/sdext2
If you're stock, do this...
Code:
mount -o remount,ro /storage/external_SD
umount /storage/external_SD
mount -o remount,ro /data/sdext2
umount /data/sdext2
Again, rom specific. If you don't have an sdext2 partition, no need for the BOTTOM TWO commands.
STEP 4
Open AParted and resize your external sd card's partition, then make yourself an ext4 formatted sdext partition. Mine is 8 GB in size, since I have a 16 GB card. The journal write takes a long time...usually about a minute and a half. Don't cancel it or you'll end up with a corrupt sd card.
STEP 5
Remount your sd card by your system menu, this is the easy way.
STEP 6
Toogle init.d in Init.d Toggler. Only for stock ROMs without init.d support. Skip this if you've already done init.d or have a ROM that has it baked/enabled.
STEP 7
Install Link2SD and the pro key. The pro key costs money, so if you're poor than I'm sorry. I'm really poor, it's only a few bucks. XD
https://play.google.com/store/apps/details?id=com.buak.Link2SD
https://play.google.com/store/apps/details?id=com.buak.link2sdplus
Run Link2SD after both are installed. If done correctly you'll get a prompt asking you to create your mount scripts, so select ext4 format and confirm, then CANCEL reboot. Go to Link2SD settings and enable Relink Lib files and Relink .dex files at boot. I also make my cache auto-clear every 6 hours or so. Auto link is a really bad idea. Since some system apps break when you link them. Clear the app and dalvik cache. Some of your apps may crash. Recreate your mount scripts again, then REBOOT.
STEP 8
Go into Link2SD and link all your user apps, you can use the filter at the top and serlect "User" to see which ones you installed. DO NOT link anything that modifies your system, since those apps are known to break. For example, voltage control or ROM Manager / ROM Toolbox break when you link them. Since you have the pro version you can link the internal data too!
DO NOT link any system apps. This is a likely known cause for a brick.
DO NOT link CM themes.
DO NOT link launchers.
STEP 9
You have successfully installed Link2SD and have it working! I suggest installing SD booster or making yourself an init.d script to boost your read ahead speed at boot. This helps A LOT with app execution on older sd cards.
I hope this guide helped! Remember, if you fark up you did it to yourself! I'm not responsible.
The L90 D415 is awesome!!!
~LoopyD
Donate to the PayPalz ([email protected])
Partitions with cwm can work too?
I don't use cwm, but TWRP, so wouldn't know.