Related
OK, I'm going to stop polluting other threads with my stuff.
This should help make sure I can keep up on the discussions and provide support for people trying to use my ZIPs and/or scripts.
NOTE: This version requires JACs kernel and init.d mods. Flash his stuff, then flash mine. All this will be integrated at some point and any other dev is welcome to integrate my stuff with theirs.
In addition to the JAC kernel, you need an ext partition on the EXTERNAL SD card. DO NOT USE ROM MANAGER TO PARTITION. You will get into a boot loop and will have to Odin back to stock. For partitioning, you may use "adb shell" in clockwork recovery, an old G1/Mytouch with Amon-Ra/Clockwork, a computer with a card reader and GPartd, Paragon, etc.. If you do it with fdisk, don't forget to format the partitions, here are some sample commands.
This will format an ext2 partition.
Code:
/system/bin/mke2fs /dev/block/mmcblk1p2
Convert from ext2 to ext3
Code:
/system/bin/tune2fs -j /dev/block/mmcblk1p2
Convert ext3 to ext4
Code:
/system/bin/tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk1p2
fsck, any ext version. Do this when you are done converting between types.
Code:
/system/bin/e2fsck -fpDC0 /dev/block/mmcblk1p2
For all of the above, make sure the partition isn't mounted with "mount". You also have to have already flashed either this ZIP, or my e2fsprogs-ext4 ZIP for the files to be installed in /system/bin.
This version will clean up older versions that I know about. It will remove any use of the playlogos hack, and the older version of my script that JAC included in his kernel.
Quadrant - 1722. I have also not seen any lag from this change. I've tried some apps that make heavy use of the database, and so far it's performing quite well. If you do see problems, I suggest fsck on the ext partition, and perhaps formatting it, to ensure it's nice and clean.
Please note that benchmark results will vary based on a large number of factors beyond my control. Try with a clean phone, no background apps. A faster SD card will help as well. I am using an older Transcend 8GB Class 6 that I used to use on my G1. It doesn't help that the free Quadrant tests lots of stuff, not just activity on /data/data and such.
To see if it's working, open a shell and type "mount". You should see entries like this:
Code:
/dev/block/mmcblk1p2 on /sd-ext type ext4 (rw,noatime,nodiratime,barrier=1,data=ordered)
/dev/block/mmcblk1p2 on /data/dalvik-cache type ext4 (rw,noatime,nodiratime,barrier=1,data=ordered)
/dev/block/mmcblk1p2 on /data/data type ext4 (rw,noatime,nodiratime,barrier=1,data=ordered)
Added data-only ZIP and the disable/revert ZIP.
Added auto-partition ZIP to create 1GB ext3 partition automatically. Note that this will delete ALL SD contents.
Added old-style enable-dc2sd for users of the auto-partition script. Do not use for JAC kernels, use the current dc2sd instead.
Changelog:
8/9/2010: Added loopback style version, should find prior versions and remove them, copying your data from the /sd-ext partition.
v2.
Compatibility fix for JAC -6 kernel.
v1.
Added e2fsprogs w/ext4 support to the ZIP
Better integration with init.d layout
On boot fsck to ensure that the ext partition is kept clean
Automatically copy files if /data has larger directories than /sd-ext
Test versions that should fix busybox to work with the newer JAC kernels. -loop uses the loopback filesystem method (RyanZA style). The other one is for an ext partition on the external SD card.
Feel free to post direct links or links to the kernel thread.
For some reason, the convetr to ext4 command isnt working for me.
Just says "Tune2fs 1.41.6" then back at # prompt
GREAT RESOURCE - Deserves a sticky just for the conversion syntax
EDIT: Maybe not, it said mounted as an ext3 before, now it says ext4
EDIT2: SUCCESS!!!!! EXT4 gives a major boost to the Quadrant score - 1531. WAY better than the~1100 i was getting before. Stupid G1 didnt actually convert ext3 to ext4, even though it said it did. Thanks!
Not that I'm stressin over Quadrant scores, but I just dropped ~100 (previous was 1497) after flashing this. Ah well.
Hmmm, before applying this script, I was just using JAC's v5 kernel, which worked fine, but after applying the OP's script, I cant backup in Clockwork (again lol).
It doesnt seem to mount /data and /datadata, as it only backs up /system and errors out on the other two. Any idea why?
EDIT: The error is really random, Ive now had 2 successful backups, 2-3 that failed due to mount issues, and 2-3 that failed due to MD5 issues. I would like to narrow down the possibilities, and I attempted a restore to stock, rooted, and then used JAC's kernel, same issue occurs (did not use your newest script). That being said, I dont think its your script. (stumped)
When converting to ext4 it said "please run e2fsck on the filesystem"
EDIT: Ran "mount" and it shows same messages you do. So it worked
LovellKid said:
When converting to ext4 it said "please run e2fsck on the filesystem"
EDIT: Ran "mount" and it shows same messages you do. So it worked
Click to expand...
Click to collapse
It's supposed to say that. Do it.
Glad it's working for some of you. As for nandroid, no idea. I'll install jac latest and check it out. Can't think of much I could have done to it though, I can't mod the ramdisk this way.
+1 on the nandroid, I went back and tried and couldnt. Also, tried to flash anamolous deodexed ROM and wouldnt. Gave errors e: cant mount /dev/block etc and failed. Could this be related?
LovellKid said:
+1 on the nandroid, I went back and tried and couldnt. Also, tried to flash anamolous deodexed ROM and wouldnt. Gave errors e: cant mount /dev/block etc and failed. Could this be related?
Click to expand...
Click to collapse
I doubt it, my stuff doesn't run in recovery, at least I don't think it will. I've never seen it run. I'll look into it, but it sounds like the jac mod might have an issue with nandroid right now.
There was a similar issue on the g1 with cm6. I wonder if that fix will work here...
Could you also post the Just DATA, and revert scripts in this thread please
Also, what would be the proper flashing order for just data?
1. JAC init.d
2. reverse
3. Just data
Or do I have to flash init.d, apply kernel, then reboot and flash reverse then just data?
The_Chrome_Coyote said:
Could you also post the Just DATA, and revert scripts in this thread please
Also, what would be the proper flashing order for just data?
1. JAC init.d
2. reverse
3. Just data
Or do I have to flash init.d, apply kernel, then reboot and flash reverse then just data?
Click to expand...
Click to collapse
Added revert and data-only to the OP.
If you don't have any sd-ext hack installed right now:
1. JAC init.d
2. data-only ZIP
3. reboot to download mode and flash the JAC kernel
If you already have dc2sd installed:
1. Revert ZIP
2. JAC init.d ZIP
3. Data-only ZIP
4. reboot to download mode and flash the JAC kernel
If you already have the kernel and the JAC init.d:
1. Revert ZIP
2. Data-only ZIP
I am trying to revert this fix, so I can try the new hack involving a virtual EXT2 partition. I tried the revert, and I manually deleted the a2sd and dc2sd files in init.d, but it rebuilds data when I reboot. ANy ideas?
zimphishmonger said:
I am trying to revert this fix, so I can try the new hack involving a virtual EXT2 partition. I tried the revert, and I manually deleted the a2sd and dc2sd files in init.d, but it rebuilds data when I reboot. ANy ideas?
Click to expand...
Click to collapse
You likely have a script in /system/etc/init.d doing it, or you didn't clean the old playlogos stuff up.
FWIW, I'm working on a similar way of doing it, but with ext4 and a proper init script. I don't like using ext2 for this stuff, too easy to corrupt it.
Does your new loop script require an sdcard with ext 4 partition or does it use the internal sd card?
ttabbal said:
You likely have a script in /system/etc/init.d doing it, or you didn't clean the old playlogos stuff up.
FWIW, I'm working on a similar way of doing it, but with ext4 and a proper init script. I don't like using ext2 for this stuff, too easy to corrupt it.
Click to expand...
Click to collapse
Thanks for your work! I found your dc2-loop-v1 script. Will play w/ that until you come out w/ something better. Is EXT2 really that fragile in terms of corruption when it is virtualized within a journaled file system (which I believe RFS is)
frank707 said:
Does your new loop script require an sdcard with ext 4 partition or does it use the internal sd card?
Click to expand...
Click to collapse
This loop version doesn't use an ext partition. Just the loopback mount. It will copy the files from an ext partition if you have applied that hack.
zimphishmonger said:
Thanks for your work! I found your dc2-loop-v1 script. Will play w/ that until you come out w/ something better. Is EXT2 really that fragile in terms of corruption when it is virtualized within a journaled file system (which I believe RFS is)
Click to expand...
Click to collapse
Most file system journals don't help with the data just the structure. Rfs rides on vfat, so I doubt it's worth much that way.
Gave the dc2-loop script a shot, to convert from the /SD-EXT method to this new ext4 container method. It creates the container correctly, but never seems to copy everything over. All my apps act as if i've never started them up, so Data isnt getting copied over correctly.
EDIT: Tried again, the dc2-loop script def doesnt work, and I have no idea why. It looks perfect (code-wise), but for whatever reason doesnt end up working properly
can't get your loop script working. every other one i have been able to run flawlessly. i just flashed the oc kernel by jac. any further instructions or pre reqs?
Due to a previous Odin ROM install, each time my Tab was restarting there was 3 apps automatically installed to /data/app (DioDict, PanzerPanic, InfeCCt).
There is a sneaky small hidden partition at /dev/block/mmcblk0p3, which gets mounted at startup by the Samsung recovery at /mnt/apk, and immediately disappears after it does its sneaky job ! Note that this has nothing to do with the stock init.rc on my euro Tab, as I use a self-made initramfs ramdisc where I can control most aspects of the boot process...it seems to be a recovery-only procedure (see the post below about the /preinstall mount).
I went to recovery, mounted mmcblk0p3 manually, and deleted the contents of /mnt/apk, problem sorted The "parted" command easily shows the partitions on the internal SD card, including this not-so-mysterious-anymore space.
As I build my own kernel and craft my own initramfs ramdisc, I added an fstab that gets activated in recovery mode only, so I have easy mount options for mmcblk0p{1,2,3} and all the other important partitions. I use /res/etc/fstab, based on the ClockWorkMod recovery folder structure (/system/etc gets sym-linked). Anyway, I digress.
I assume that hidden.rfs (when flashed with Odin) is destined to this hidden internal SD card partition, so I guess that Heimdall could be updated to support this particular use-case...or maybe not
Cheers, Dan
That's your pre install partition.
Code:
mkdir /preinstall
mount rfs /dev/block/mmcblk0p3 /preinstall nosuid nodev check=no
chown system system /preinstall
chmod 0771 /preinstall
is how it's mounted by init.rc. So, you can just remove it from that to prevent it from mounting too.
Ah, thank you for the clarification !
EDIT: I have never seen the preinstall directory on my Euro Tab, but I also admit that I didn't pay attention to the stock init.rc (which has now been overridden by my self-made initramfs). By the way, it's not RFS on my Tab, but vFAT.
Nothing to do with hidden.rfs then ?
How come the APK files never get deleted from this partition ? It should really be just a one-off install, right ? Otherwise, as it stands it is designed to interfere with my nicely cleaned-up system at each device reboot ! (and it is not controlled by the init.rc, but by the recovery process)
I noticed that partition too on my Verizon Tab. I don't want to mess with it though, I think it contains some files that Samsung uses to unbrick dead tabs at their repair center.
You can always just back it up with heimdall before you mess with it so you have a good restore.
/dev/block/mmcblk0p3 means???
So guys,
whats the meaning of /dev/block/mmcblk0p3 not found anyway
I got that message after flushing back and forth between froyo-GB to my Samsung I9003 device. I did rooting also at that moment.
According to your post earlier i assume that there is a way to fix this problem.
*sorry for the 'very' newbie question*
Any suggestion where i can start trying ??? (i've ask here but hopeless)
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
This is how I got dual booting from windows working and am now dual booting Nottachtrix4G from sdcard with stable
cam and WEBTOP along side AOKPCB
I was only able to achieve this after following sendust7 linux guide for dual boot and adapting to windows so all
credit goes to him.
Again these are the steps I took. If you try this and break something I'm not responsible.
Pre-requisites
Notepad++
Minitool partition wizard
Android SDK (google adb for dummies to get everything you need)
Cygwin (if you dont have it start install now and it might be done when its time to use it)
The rom zip you want on your sdcard and the rom zip you want on your phone
Moto-fastboot (search this forum)
Knowledge of ADB and fastboot
Fully Charged Battery
Backup everything from internal and external sdcard
Reboot to recovery
Flash the rom that you want on your sdcard to your phone like you would do normally.
Reboot phone and set it up if you like or just reboot back to recovery. If you set your rom up at this point, this
is how it will look on your sdcard at first boot.
Reboot back to recovery
adb shell
~ #mount /cache
~ #mount /system
~ #mount /data
~ #mount
Take note of system data and cache file systems (ext3 or ext4)
Power off phone and pull sdcard
Insert sdcard into computer and open minitool partition wizard.
Partition and format sdcard with same filesystem as noted before
These are the partition sizes I went with and only because i didnt feel like adjusting the slider anymore. But
These values did ensure they were big enough to hold the phone partitions. The first partition is whats left over
after resizing other partitions and will be formatted to fat32
system=384 MB <second partition on sdcard
cache=700 MB <third
data=2.6 GB <fourth
Insert sdcard and boot to recovery
adb shell
PATIENCE IS KEY FOR NEXT STEPS
~ # dd if=/dev/block/mmcblk0p12 of=/dev/block/mmcblk1p2 bs=1M
655360+0 records in
655360+0 records out
335544320 bytes (320.0MB) copied, 115.626214 seconds, 2.8MB/s
~ # dd if=dev/block/mmcblk0p15 of=/dev/block/mmcblk1p3 bs=1M
dd if=dev/block/mmcblk0p15 of=/dev/block/mmcblk1p3 bs=1M
640+0 records in
640+0 records out
671088640 bytes (640.0MB) copied, 206.557368 seconds, 3.1MB/s
~ # dd if=/dev/block/mmcblk0p16 of=/dev/block/mmcblk1p4 bs=1M
dd if=/dev/block/mmcblk0p16 of=/dev/block/mmcblk1p4 bs=1M
2048+0 records in
2048+0 records out
2147483648 bytes (2.0GB) copied, 658.327418 seconds, 3.1MB/s
Now get boot.img
While still in adb shell
~ #mount /dev/block/mmcblk0p18 /emmc
~ #cp /dev/block/mmcblk0p11 /emmc/boot.img
~ #exit
~ #adb pull /emmc/boot.img boot.img
Go here and follow this step by step and stop after you've got your boot image unpacked
http://forum.xda-developers.com/show....php?t=1630130
If you have any problems with cpio run cygwin installer again and search for cpio and install
Once boot image is unpacked go to the out directory and find init.rc
Edit init.rc with notepad++ (NOT NOTEPAD) and change these lines
ONLY CHANGE THE /dev/bloc/mmcblk part. LEAVE EVERYTHING ELSE THE SAME
From
mount ext4 /dev/block/mmcblk0p12 /system noatime nodiratime wait ro barrier=1
mount ext4 /dev/block/mmcblk0p16 /data nosuid nodev noatime nodiratime wait barrier=1 noauto_da_alloc
mount ext4 /dev/block/mmcblk0p15 /cache nosuid nodev noatime nodiratime wait barrier=1 noauto_da_alloc
TO
mount ext4 /dev/block/mmcblk1p2 /system noatime nodiratime wait ro barrier=1
mount ext4 /dev/block/mmcblk1p4 /data nosuid nodev noatime nodiratime wait barrier=1 noauto_da_alloc
mount ext4 /dev/block/mmcblk1p3 /cache nosuid nodev noatime nodiratime wait barrier=1 noauto_da_alloc
Once you have made these changes you can finish the tutorial posted above or below for repacking and make sure to
click thanks. If the boot_new.img is a different size than original that's okay.
http://forum.xda-developers.com/show....php?t=1630130
Move your boot_new.img to your moto-fastboot and reboot phone to fastboot.
moto-fastboot boot boot_new.img
If you're booted into your sdcard rom you're almost done.
Reboot to recovery and install any rom you want and boot to it.
Now create this directory on your internal sdcard
/sdcard/Boot/sdrom/
Copy your boot_new.img you used to boot your sd rom earlier to this directory and rename it to sdrom.img
Now create this directory on your internal sdcard
/sdcard/Boot/emmcrom/
Now open the rom zip you installed to your phone and copy the boot.img to this directory and rename it to
emmcrom.img
Use attached script with scriptmanager to commense dual booting. (Rename to modified-boot-rom.sh)
Run script as root with argument 1 to reboot to sdcard rom and argument 2 to reboot to phone rom. Argument 3 will
send you to recovery.
All done from windows even though it would be twice as easy and fast to do with linux but there ya go.
I take no credit as all I did was find the right resources and none of this would even be possible without
sendust7. If this helped you Please go to his guide and thank him TOO!!!!
http://forum.xda-developers.com/show....php?t=1642185
great.....will try and post back my experience!!!
I get everything up to get boot image. when I run that command, it runs for a few seconds then adb stops responding.
Any advice? I waited the one time for 15 minutes hoping it would respond...but it didn't.
thanks!
Sent from my MB860 using xda premium
95rr900 said:
I get everything up to get boot image. when I run that command, it runs for a few seconds then adb stops responding.
Any advice? I waited the one time for 15 minutes hoping it would respond...but it didn't.
thanks!
Sent from my MB860 using xda premium
Click to expand...
Click to collapse
What rom are you putting on sdcard
EDIT: look in your rom.zip.....boot img may be in there. If it is you can just use that
Edit: could try to make sure sdcard is mounted.......mount /sdcard
Sent from my MB860 using Tapatalk 2
Im putting nottachtrix on sdcard.
Ok, so I can just copy the boot image from the rom zip and use that in cygwin...and go from there?
Now that I think about it, the sdcard was probably not mounted.
I'll give it another go in the morning. Thanks for the help!
Sent from my MB860 using xda premium
95rr900 said:
Im putting nottachtrix on sdcard.
Ok, so I can just copy the boot image from the rom zip and use that in cygwin...and go from there?
Now that I think about it, the sdcard was probably not mounted.
I'll give it another go in the morning. Thanks for the help!
Sent from my MB860 using xda premium
Click to expand...
Click to collapse
Yes
Sent from my MB860 using Tapatalk 2
Install rom you want on your sdcard
hatefuel19 said:
Install rom you want on your sdcard
Reboot phone and set it up if you like or just reboot back to recovery. If you set your rom up at this point, this is how it will look on your sdcard at first boot.
Click to expand...
Click to collapse
What do you mean by install on sdcard and is that internal or external sd? And does Aroma make any difference
many thanks Simon
EDIT : Im an idiot it means install to the phone, the rom you want to have booting from sdcard.
This is really burnin my nut sack
No matter what I do, I can't get through "getting boot image". I tried going into the nottachtrix rom.zip, but it is set up different from other roms. I guess because of the aroma installer?
Maybe I'll try with a different rom just to see if I have the same problem.
EDIT: Tried it with aokp, and still get adb not responding in the middle of getting boot image?
95rr900 said:
This is really burnin my nut sack
No matter what I do, I can't get through "getting boot image". I tried going into the nottachtrix rom.zip, but it is set up different from other roms. I guess because of the aroma installer?
Maybe I'll try with a different rom just to see if I have the same problem.
EDIT: Tried it with aokp, and still get adb not responding in the middle of getting boot image?
Click to expand...
Click to collapse
In about thirty minutes I'm gonna run through this again. Been trying to get webtop2sd working. Once I do I'm gonna do this tut again step by step and I'll see if I have any snags.
And you're right since nottachtrix uses aroma it isn't packed like other rooms which is why I put this step in here
Edit: strange how its doin same to me now too.......found a fix and gonna double check b4 I update op
EDIT: op updated - give it a try
Sent from my A500 using Tapatalk 2
awesome, thank you!
Sent from my MB860 using xda premium
stokehall said:
What do you mean by install on sdcard and is that internal or external sd? And does Aroma make any difference
many thanks Simon
EDIT : Im an idiot it means install to the phone, the rom you want to have booting from sdcard.
Click to expand...
Click to collapse
not an idiot bud. I'll clarify in op
Alright, I'm going back in! I'm going to start from scratch...format external sd and repartion.....the works!
I got Nottachtrix set up perfect and doing a nandroid of it right now. Hopefully my next post will be about success!!
Thanks OP for updating the instructions......Here we go!!
I had no errors this time, and it still didn't work? How big is your boot.img after you extract it and repack it? Mine is 2.9mb,,is that right (nottachtrix)?
also, my other question is....when you make the partitions on the sdcard, are you making them primary or logical (I did primary)? everything was ext3 when I mounted it...and that's what I made the partitions.
Also, in mini partition tool when you create them...how are you naming them? I'm just naming them, system, cache, and data?
I used aokpbc 35.1 for the internal rom and just copied the boot.img into the boot folder.
Also, the original boot.img that gets extracted from nottachtrix is 8mb in size. But after making the edits with notepad++ and saving, then repacking in cygwin...it is only 2.9mb?
This is frustrating because it takes awhile to partition the sdcard and then copy everything over in adb shell.
Also, after doing the whole boot.img thing, and then doing moto-fastboot boot boot_new.img
it boots into nottachtrix, but I'm already in nottachtrix. How can I tell if I booted from the sdcard?
Sorry for all these questions, I really want to get this working! It's more a matter of just not giving up now...lol!
Anybody else get this to work on windows?
Thanks!
95rr900 said:
I had no errors this time, and it still didn't work? How big is your boot.img after you extract it and repack it? Mine is 2.9mb,,is that right (nottachtrix)?
also, my other question is....when you make the partitions on the sdcard, are you making them primary or logical (I did primary)? everything was ext3 when I mounted it...and that's what I made the partitions.
Also, in mini partition tool when you create them...how are you naming them? I'm just naming them, system, cache, and data?
I used aokpbc 35.1 for the internal rom and just copied the boot.img into the boot folder.
Also, the original boot.img that gets extracted from nottachtrix is 8mb in size. But after making the edits with notepad++ and saving, then repacking in cygwin...it is only 2.9mb?
This is frustrating because it takes awhile to partition the sdcard and then copy everything over in adb shell.
Also, after doing the whole boot.img thing, and then doing moto-fastboot boot boot_new.img
it boots into nottachtrix, but I'm already in nottachtrix. How can I tell if I booted from the sdcard?
Sorry for all these questions, I really want to get this working! It's more a matter of just not giving up now...lol!
Anybody else get this to work on windows?
Thanks!
Click to expand...
Click to collapse
the difference in sizes is okay. The orginal boot.img contains the kernel whereas the new boot.img only contains the ramdisk. my original is 8 mb and repacked is 2.8
if you ran fast-boot boot boot_new.img and it booted you're in your sd rom. from adb shell run mount and you'll see that system is mounted under /dev/block/mmcblk1p2. This is your sd card partition, internal is mmcblk0p12.
sd card partition naming is okay as that is exactly how i named mine. Make them primary.
Don't worry about asking questions, were both learning
I'm reaching here, but I wonder if it has something to do with how the internal and external sdcard are. I run aokpcb, but I flip flop the cards, so external is emmc and internal is sdcard.
Do you think that might be an issue?
Although, I did do a clean install of aokpbc with stock settings, still a no go.
I'll have to give it another try, I just don't wanna mess up my new 32gb sdcard!
I have to be close to getting this to work, this last time I made it all the way to using script manager to boot into the other rom...but it doesn't get past the splash screen,,,then loops.
anyway, thanks for your help...really!!
I don't anderstand....
May be wrong section, but...
Why don't use Nandroid backup files ?
Look in these directory :
/sdcard/clockworkmod/backup/<backupdatesave>
You have yours :
- boot.img
- system.etx4.tar
- data.ext3.tar
- cache.ext3.tar
...
all you need here.
May i'm wrong, but do a nandroid after install CM7, nottachtrix4G, CM9, etc...
A use Boot.img for multi boot
You can use "Boot Manager" too... http://forum.xda-developers.com/showthread.php?t=1191014
To create ".img" file, you can use this proc (use CWM program) :
su
mkyaffs2image /system system.img &
while [ `pidof mkyaffs2image` ]; do
echo -n "."
sleep 2
done
Create "system.img" file...
Same for
/data
/cache
Boot
...
95rr900 said:
I'm reaching here, but I wonder if it has something to do with how the internal and external sdcard are. I run aokpcb, but I flip flop the cards, so external is emmc and internal is sdcard.
Do you think that might be an issue?
Although, I did do a clean install of aokpbc with stock settings, still a no go.
I'll have to give it another try, I just don't wanna mess up my new 32gb sdcard!
I have to be close to getting this to work, this last time I made it all the way to using script manager to boot into the other rom...but it doesn't get past the splash screen,,,then loops.
anyway, thanks for your help...really!!
Click to expand...
Click to collapse
if its looping its so ething to do with your boot.img. tinker with it til you get it right. remember if you get that far and it doesnt boot dont start over. just flash the working boot image, meaning the one from the rom you just left and then try editing the broken boot.img
delewer said:
I don't anderstand....
May be wrong section, but...
Why don't use Nandroid backup files ?
Look in these directory :
/sdcard/clockworkmod/backup/<backupdatesave>
You have yours :
- boot.img
- system.etx4.tar
- data.ext3.tar
- cache.ext3.tar
...
all you need here.
May i'm wrong, but do a nandroid after install CM7, nottachtrix4G, CM9, etc...
A use Boot.img for multi boot
You can use "Boot Manager" too... http://forum.xda-developers.com/showthread.php?t=1191014
To create ".img" file, you can use this proc (use CWM program) :
su
mkyaffs2image /system system.img &
while [ `pidof mkyaffs2image` ]; do
echo -n "."
sleep 2
done
Create "system.img" file...
Same for
/data
/cache
Boot
...
Click to expand...
Click to collapse
give that a shot and see if it works
My partitions are all ext3, but in the boot.img it says mount ext4? Do i change it to ext3 or leave it ext4?
Also do you mind posting a video tutorial?
hatefuel19 said:
adb shell
~ #mount /cache
~ #mount /system
~ #mount /data
~ #mount
adb shell
PATIENCE IS KEY FOR NEXT STEPS
~ # dd if=/dev/block/mmcblk0p12 of=/dev/block/mmcblk1p2 bs=1M
655360+0 records in
655360+0 records out
335544320 bytes (320.0MB) copied, 115.626214 seconds, 2.8MB/s
~ # dd if=dev/block/mmcblk0p15 of=/dev/block/mmcblk1p3 bs=1M
dd if=dev/block/mmcblk0p15 of=/dev/block/mmcblk1p3 bs=1M
640+0 records in
640+0 records out
671088640 bytes (640.0MB) copied, 206.557368 seconds, 3.1MB/s
~ # dd if=/dev/block/mmcblk0p16 of=/dev/block/mmcblk1p4 bs=1M
dd if=/dev/block/mmcblk0p16 of=/dev/block/mmcblk1p4 bs=1M
2048+0 records in
2048+0 records out
2147483648 bytes (2.0GB) copied, 658.327418 seconds, 3.1MB/s
Click to expand...
Click to collapse
ADB was unable to mount cache
Then when i changed the block/mmcblk0p16 , i was told it was unable to (Not Enough space)
I am very much a noob with this, just determined not to go without dual boot!
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?