MultiSystem is a powerful tool for locked- and unlocked-bootloader Android devices with many features that at least includes the following:
Keeps stock system partition safe/rooted
Permenant root survival with proper use
MultiROM support via virtual ROMs
Unlimited number of virtual ROMs
Booting options to choose stock, primary, or secondary virtual ROM
Any of the virtual ROMs can work as a recovery replacement
Flashing multiple ROMs at the same time without a reboot
Ability to create/install ROMs on Linux to microSD card
Great performance & battery life on virtual ROMs
Recovery solution to install ROMs or Mods
Easy upgrade to newer versions of Android
Ability to safely apply OTA updates to virtual system
Permissive SELinux and other kernel tweaks
Safe flashing that doesn't trip KNOX flag on Samsung devices
Wrapper script runs via ADB or a Terminal Emulator on device
APK to manage all MultiSystem functions with a nice UI and extra options
Management for the best performance & user experience
Support for all Android devices with microSD card
Portability to almost all devices
Compatibility with all Android versions
Click to expand...
Click to collapse
Q&A
What is the concept behind MultiSystem?
It runs virtual Android ROMs on microSD, like booting multiple systems on a PC from different partitions/disks. So, your stock system partition is kept safe/rooted. It won't affect performance or anything (might even be better on the virtual system if you've high quality microSD & the device supports its speed). Also, you can freely modify any of the virtual systems & in the worst case, reboot the safe stock system or another working virtual system to recover. So, no root loss or potential damage to the original device partitions.
Click to expand...
Click to collapse
Is it a recovery or an APK tool?
It's a shell script that hijacks system at early boot & force Android to boot from the stock system partition or a virtual system IMG & an APK that manages all booting options, virtual ROMs, and works as a recovery replacement + extra features...
Click to expand...
Click to collapse
Does it work as a recovery replacement?
It IS a POWERFUL recovery replacement. You can do whatever you do in recovery with the APK. HOW? recovery does its magic b/c it doesn't depend on the system & has its own kernel/ramdisk. In MultiSystem, you can boot a virtual ROM from extSD that sure doesn't depend on stock system partition or any of the other virtual ROMs (it does depend on the kernel, which you can't flash on locked devcies anyway). Hence, install, backup, restore, ... & all recovery functions are all possible +++ more features since you're running a full ROM not just a recovery ramdisk like Safestrap.
Bottom Line: I think it's the best & most convenient recovery replacement ever for locked devices & it can also attract unlocked devices for the powerful features, MultiROM, and recovery from within ROM.
Click to expand...
Click to collapse
Can I use FlashFire along with MultiSystem?
Yes. MultiSystem is compatible with FlashFire & fully supports it on stock & virtual ROMs. So, you can use both/any of them for flashing to either a stock or virtual ROM. However, it's recommended to use MultiSystem when flashing to the stock system partition (shouldn't be needed anyway since you can always be safe & flash to your old/new virtual ROMs).
Click to expand...
Click to collapse
Does MultiSystem require FlashFire?
No, MultiSystem doesn't require FlashFire. They're fully combatible though.
Click to expand...
Click to collapse
Would the virtual ROM we install be exactly the one in the stock slot?
In MultiSystem APK, you can create a virtual ROM from stock system, a copy from other virtual ROM, a new IMG, a dev-provided ROM, a flashable .ZIP, ... etc. Literally, your virtual ROMs can be any stock or custom ROM that's compatible with your firmware/kernel.
Click to expand...
Click to collapse
How can it run virtual ROMs from external microSD card?
External MicroSD will be formated into 2 partitions:
exFAT or FAT32 for the 1st partition (your new external storage)
EXT4 for the 2nd partition (your MultiSystem partition)
It'll hijack the system & boot a virtual system from the 2nd partition. The 1st partition will be automatically detected as your extSD.
Click to expand...
Click to collapse
Can I run unrooted virtual ROM for work apps or any other reason?
Yes. You can add unrooted virtual ROM & reboot to it via MultiSystem APK.
Click to expand...
Click to collapse
How do you boot back into a different ROM?
MultiSystem APK manages all functions including ROM activation & reboot to current system, another stock/virtual system, download mode, recovery, ... etc.
Click to expand...
Click to collapse
Will it be OK to still store media like movies/photos/music to extSD?
100% OK; That's my setup a few months ago. 2 virtual ROMs in the SECOND extSD partition in EXT4 format while all personal data are stored on the FIRST extSD partition in exFAT or FAT32 format... TWO COMPLETELY DIFFERET PARTITIONS.
Click to expand...
Click to collapse
How much space are we going to have for virtual ROMs?
The size of the 2nd partition is optional (> 4GB) for your ROMs, but here is an estimated sizes:
1 Virtual ROM Uncompressed = ~2.7 GB ---> ready for running
1 Virtual ROM Compressed = ~1.5 GB ---> for full ROM backups
I'd say better allocate 4 GB for each ROM you plan to run. If you just need one virtual ROM to keep stock system safe, 4 GB 2nd extSD partition is enough; The remaining space is allocated for the 1st extSD partition as your external storage.
For me, I run Linux too from extSD via MultiSystem. So, I've 64 GB extSD card with two partitions 32 GB each.
Click to expand...
Click to collapse
Can I clear up space on an existing SD card and partition it while full or will the entire card need to be wiped and partitioned from scratch?
You need to backup all your files; it'll be wiped & repartitioned.
Click to expand...
Click to collapse
How can I swap microSD cards & be able to run virtual ROMs?
You can swap microSD cards as you wish provided that the device is powered off; don't remove the microSD card when running a virtual ROM. If the new microSD card doesn't include a 2nd parition of available virtual ROMs, the device will boot directly to the stock system.
Click to expand...
Click to collapse
Is there a specific sd card you recommended for this?
I personally have two microSD cards:
SanDisk Extreme Plus 64GB (Up to 80MB/s read speed)
Samsung 64GB PRO (Up to 90MB/s read speed)
You don't have to change your microSD card for MultiSystem; any card you use on your device should work just fine. The need for more speed is relevant when the device supports that speed & if you're going to buy a new card anyway that you may use with a newer device later.
Click to expand...
Click to collapse
Can I copy virtual ROMs to a new microSD card?
Yes. I'll add a feature for swapping microSD cards so that you can backup/restore virtual ROMs from/to the current extSD to/from internal storage as follows:
power off device
use MultiSystem APK to backup your virtual ROMs
insert the new properly formatted microSD,
power on device (it'll boot to stock system)
use MultiSystem APK to restore your virtual ROMs
use MultiSystem APK to activate one of your virtual ROMs
use MultiSystem APK to reboot to any of your ROMs
Click to expand...
Click to collapse
What about other data/cache partitions and internal storage?
Only system img's are in the extSD. All ROMs share all other partitions. This substantially improves the performance & you won't notice any difference between your stock & virtual ROMs. The reason for performance improvement is that EXT4 loop devices are very fast in reading but not in writing. Your system partition is read-only while data (for example) is read write & cache IMGs cause problems like Safestrap issues on ROM slots. Also, you don't have to worry about switching data/settings between ROMs (they're shared), but you just need to regularly backup your important data (which is healthy anyway).
Click to expand...
Click to collapse
Can your elaborate where data is stored?
The userdata partition is also shared; so, you'll have access to all your FULL storage partitions & all apps/data similarly on either stock or virtual ROMs. This also solves the Safestrap issue of having less storage on ROM slots...
Click to expand...
Click to collapse
Will mSDcard incur a significant performance penalty on some devices?
there's no diffrerence between virtual & stock ROMs in terms of performance & battery life. The reason is simple: loop devices associated with the READ-ONLY system IMG mounted from EXT4 partition using a high-quality microSD card IS very fast more than enough.
The read speed is faster than the device can operate anyway + the exact same device should perform on the lowest speed when reading/writing from/to the FAT/FAT32/ExFAT extSD card (where you store your files or even move apps!!!) anyway, which is much slower than the read speed of a loop device mounted from EXT4 partition.
That's why data partition is shared for many reasons, including the poor READ/WRITE performance.
Click to expand...
Click to collapse
If virtual systems are read only, how do we modify them? Do we have to boot to another multisystem rom to modify a virtual rom?
The stock system partition is mounted by default read only & so are the virtual systems. To modify a stock/virtual system, the MultiSystem APK remounts them read/write. You can modify the currently running virtual system, copy it & modify the copy, modify another stock/virtual system.
Click to expand...
Click to collapse
How is a corrupted virtual rom handled? Does it see it's bad and default to stock system?
At early boot, MultiSystem checks for the microSD & active virtual ROM to boot it. There's a boot menu that gives you options to select a stock/virtual system, but it crashes on LP. I'm debugging it, but all functions won't be affected if I removed it. To fail safe, you can remove the microSD card to boot to stock system & restore/repair your virtual ROMs.
UPDATE1: MultiSystem v1.0.1 now allows you to also switch to stock system on boot to repair corrupted virtual IMGs or any other reasons. More options will be added during boot to ultimately select another virtual system if the active IMG is not booting normally (e.g., bootloop after applying a mod or flashing a bad .ZIP).
UPDATE2: Now, on boot, you can choose from two primary/secondary virtual ROM or stock ROM. Flashing multiple ROMs at the same time without a reboot is now possible.
Click to expand...
Click to collapse
How to check if an IMG is corrupted using MultiSystem status?
Code:
Current System IMG: Test_Rom.img
Current System DEV: [B][COLOR="Red"]/dev/block/mmcblk0p23[/COLOR][/B]
When you see "/dev/block/mmcblk0p23"; it's the original system partition; so MultiSystem failed to boot Test_Rom.img, but it should be your current system.
So, the check is simple based on "Current System Device":
/dev/block/mmcblk0p23 = Stock System Partition
/dev/block/loop0 = Virtual System IMG
Note: The block device number (mmcblk0p23) may vary per device & per variant !
Click to expand...
Click to collapse
Does android do any maintenance whatsoever on stored data within /data or external sd? So if I have an app installed on 1 system and not on another system will android see it and clear the data?
No, all storage partitions are shared between ROMs. If you installed an app, it'll be availabe for all of them. Since on locked devcies we're limited to stock manufacturer-based ROMs, this makes the switch between ROMs very convinient (you don't have to worry about your changes/data/setup & storage space on the another ROM; all ROMs share everything except system). However, you should make regular backups in case a virtual ROM (probably with unsafe mods) results in bootloop due to your user data. In this case, it's safe to wipe data & selectively restore apps/data from backup(s). Another advantage of sharing all storage partitions is that your messages/emails/etc received on a virtual ROM are immediated synced (actually shared) to the other ROMs.
Click to expand...
Click to collapse
Will anything like Xposed modify the virtual ROM system IMG as opposed to the stock system IMG?
When you run a Virtual System, everything incldung kernel & apps are hijacked to speak to it as the original system.
Click to expand...
Click to collapse
Can we install AOSP ROMs on locked devices?
You can only install stock/manufacturer-based ROMs on locked devices while unlocked devices can use kexec or flash the required kernel to boot any AOSP/Stock ROMs. I've got a Note 4 Developer Edition & a lot of development is planned to go there (thanks to the unlocked bootloader!) More devices will get supported including unlocked TMO & international variants after adding more features untilizing the unlocked bootloader with kexec'd kernels.
Click to expand...
Click to collapse
Are there limitations to the combinations of ROMs that can be loaded on the "stock" and "virtual" slots? Can you mix KK and LP?
Yes, if they can run on the same kernel. LP won't run on KK kernels & so, you'd have to upgrade the firmware anyway. As for running mixed compatible Android versions, this is possible but your'd have to backup your data before switching ROMs; if it cause no issues, enjoy smooth switch & if it doesn't, do factory reset in recovery & restore your data backup. Backups via MultiSystem are painless.
Click to expand...
Click to collapse
Are applications installed once for each ROM slot that has that applicaiton installed, or can I share a game across ROMs (for instance?)
Everything is shared between ROMs, which is very good for storage & for easy switching. Just make regular backups of your sensitive data.
Click to expand...
Click to collapse
How there are no performance hits while internal storage memory was much faster than any microSD technology?
Read speeds from microSD is very fast compared to write speeds & since virtual ROMs are actually a virtual read-only systems (hence, MultiSystem), they provide a high performance. Moreover, again, read speeds from EXT4 loop devices are higher compared to physical partitions. They're very bad in writing, which we don't need for the read-only "system".
Click to expand...
Click to collapse
Is there a preferred "daily driver" ROM that should be installed in the stock slot?
Uses a stock ODEXED ROM on stock slot for better stability!
Click to expand...
Click to collapse
Is it based off of Safestrap?
Short answer NO. I've been working on MultiSystem & Safestrap for ~7 months. Earlier versions of MultiSystem (called, JasmineREC) was based on Safestrap, but it failed to support newer versions of Android mainly due to TWRP changes in the graphics/UI libraries that cause segmentation fault & the stock kernel framebuffer issues. Then, I decided to find another solution. However, the basic idea of system hijack is powered by Safestrap (or 2nd-init recoveries in general) & all the work done by @Hashcode is GREATLY appreciated.
Click to expand...
Click to collapse
How can it overwrite system files while running?
MultiSystem allows you to install safe mod's or a ROM in full or OTA-like update. It's strongly recommended to install .ZIP files NOT to the current system, b/c some files can not be overwritten while running. So, you can use backup function to copy the current system & install to the new img or any of your other virtual systems. You'll have several options to activate a virtual img & reboot directly to stock system, any virtual img you've activated, quick reboot, Download/bootloader, recovery,... etc.
Click to expand...
Click to collapse
How would I benefit from it if I'm only running Stock ROM or would there be no point for me to install it?
If you run a ROM on stock system, you're vulnerable to root loss unless/untill a new rooting method for LP comes out. MultiSystem gives you the option to run safe-to-mod virtual ROMs + recovery replacement + extra features.
Click to expand...
Click to collapse
Is there a way to convert a normal ROM .ZIP into MultiSystem .IMG?
Create or copy any of your IMGs, activate it & reboot to the active IMG! Then, use FlashFire to flash the ZIP file. However, the updater-script should be safe/compatible. Some devs mount the phyical partition, which will redirect everything to it!!
For example:
Code:
mount(“ext4″, “EMMC”, “/dev/block/mmcblk0p23″, “/system”);
will mount the original system partition; while
Code:
run_program("/sbin/mount", "-t", "auto", "/system");
will mount the current system (stock or virtual). This is recommended/safe.
Click to expand...
Click to collapse
Would a KitKat ROM work with multisystem even though my stock is Lollipop?
Any ROM requires a compatible kernel & modem. So, running KK ROMs requires flashing KK firmware (namely, kernel & modem). This may work with MultiSystem on other devices, especially if the bootlpoader is unlocked. For example, I plan to add features for Note 4 DevED to allow different Android versions (including AOSP, manufacturer-based, & probably Linux systems) by utilizing kernel swapping or execution.
Click to expand...
Click to collapse
When MultiSystem comes out will it be open sourced?
Most probably, haven't decided yet!
Anyway, here's the repository on GitHub: https://github.com/hsbadr/MultiSystem
Click to expand...
Click to collapse
Click to expand...
Click to collapse
Video Tutorials
A quick preview of MultiSystem v1.0 tested on Lollipop for VZW Note 3. The video has been captured on a stable virtual ROM of JasmineROM v5.0.1. It's FULLY compatible with FlashFire on virtual/stock systems. More devices will get supported as well, after required testing.
Facebook: https://www.facebook.com/hsbadr/videos/vb.331488823689599/428178174020663
How to check if you are running a Stock/Virtual System?
There're many ways to check whether you're running a Stock or Virtual system. MultiSystem app should include this simple check at some point. That's important to avoint ruining the Stock system & keep it safe. To make it clear to NOOBZ & anyone who's requesting "another" proof even though I owe hime nothing. Very weird!
Anyway, BusyBox mountpoint applet can print the current block/device mounted to /system mountpoint by running the following command:
Code:
busybox mountpoint -n /system
The stock system is mounts the original system partition:
Code:
[B][COLOR="Red"]/dev/block/mmcblk0p23[/COLOR][/B]
while the virtual system mounts a loop device associated with a system IMG:
Code:
[B][COLOR="Blue"]/dev/block/loop0[/COLOR][/B]
Here're two videos for both stock & virtual systems...
UPDATE:
Now, you could run the following command to print the current system (stock or virtual) and the system device (physical partition or loop device):
Code:
MultiSystem status
Note: The block device number (mmcblk0p23) may vary per device & per variant !
How to repartition microSD card for MultiSystem?
You can use any tool/program for partitioning on Android, Linux, Mac, or Windows. For example, MiniTool Partition Wizard is a good partitioning tool for Windows. So, let's use it for this task. Simply, you need to follow this PDF tutorial (thanks to @carl1961). In sum:
Step 1: delete old partitions on SD card
Step 2: create FAT32 PRIMARY partition
Step 3: create EXT4 PRIMARY partition
Then, apply changes (note that the program UI may get changed in newer versions).
Notes:
This partitioning tutorial doesn't create PRIMARY partitions (it creates logical partitions). So, you need to change "Create As" from "Logical" to "Primary" when creatig a partition.
The sizes of the two partitions are arbitrary depending on number of ROMs you plan to install on the 2nd EXT4 partition.
The 1st partition (check size) is automatically detected as your external storage
In Terminal Emulator or ADB shell, check the existence of the two partitions by running the following command (in red):
Code:
[email protected]:/ # [COLOR="Red"]ls -l /dev/block/platform/msm_sdcc.3/[/COLOR]
drwxr-xr-x root root 2015-05-02 21:08 by-num
lrwxrwxrwx root root 2015-05-02 21:08 mmcblk1 -> /dev/block/mmcblk1
lrwxrwxrwx root root 2015-05-02 21:08 mmcblk1p1 -> [COLOR="Blue"]/dev/block/mmcblk1p1[/COLOR]
lrwxrwxrwx root root 2015-05-02 21:08 mmcblk1p2 -> [COLOR="Blue"]/dev/block/mmcblk1p2[/COLOR]
/dev/block/mmcblk1p1 is mounted by Android as your external storage.
/dev/block/mmcblk1p2 is NOT mounted & will be your MultiSystem partition.
Click to expand...
Click to collapse
How to check microSD card partitions for MultiSystem?
You can use any tool/program for partitioning on Android, Linux, Mac, or Windows. For example, MiniTool Partition Wizard is a good partitioning tool for Windows. So, let's use it for this task. Simply, you need to follow this PDF tutorial (thanks to @carl1961). In sum:
Step 1: delete old partitions on SD card
Step 2: create FAT32 PRIMARY partition
Step 3: create EXT4 PRIMARY partition
Then, apply changes (note that the program UI may get changed in newer versions).
Notes:
This partitioning tutorial doesn't create PRIMARY partitions (it creates logical partitions). So, you need to change "Create As" from "Logical" to "Primary" when creatig a partition.
The sizes of the two partitions are arbitrary depending on number of ROMs you plan to install on the 2nd EXT4 partition.
The 1st partition (check size) is automatically detected as your external storage
In Terminal Emulator or ADB shell, check the existence of the two partitions by running the following command (in red):
Code:
[email protected]:/ # [COLOR="Red"]ls -l /dev/block/platform/msm_sdcc.3/[/COLOR]
drwxr-xr-x root root 2015-05-02 21:08 by-num
lrwxrwxrwx root root 2015-05-02 21:08 mmcblk1 -> /dev/block/mmcblk1
lrwxrwxrwx root root 2015-05-02 21:08 mmcblk1p1 -> [COLOR="Blue"]/dev/block/mmcblk1p1[/COLOR]
lrwxrwxrwx root root 2015-05-02 21:08 mmcblk1p2 -> [COLOR="Blue"]/dev/block/mmcblk1p2[/COLOR]
/dev/block/mmcblk1p1 is mounted by Android as your external storage.
/dev/block/mmcblk1p2 is NOT mounted & will be your MultiSystem partition.
Click to expand...
Click to collapse
How to check MultiSystem Installation?
The 1st thing to do after installing MultiSystem is to check the /MultiSystem directory & its contents (it shouldn't be empty!). Then, check usage by running the following commands in Terminal Emulator or ADB shell:
Code:
su
bash
MultiSystem
If it retuns "MultiSystem not found" or permission denied, try to use open MultiSystem app to Update Configurations & try again. If this does't fix it, try the following command:
Code:
/MultiSystem/bin/MultiSystem
This should work if you've MultiSystem binaries installed in (extracted to) /MultiSystem directory. If so, you can create a symlink in /system/xbin as follows:
Code:
mount -o remount,rw /system
ln -sv /MultiSystem/bin/MultiSystem /system/xbin/MultiSystem
Then, test it by running:
Code:
MultiSystem
The last thing before using it is to check the boot options: reboot & monitor the GREEN LED indicator for 3 seconds (change in the app) , which give you the following options:
Volume UP = Primary virtual ROM
Volume DOWN = Secondary virtual ROM
HOME KEY = Stock System
Sure, you should have installed one or more virtual ROMs.
Backup & restore or creating/installing a virtual ROM are easy as copy & paste: all img's will be at
Code:
/MultiSystem/img/system
To backup a virtual/stock system, you have many options:
Use create function to create from stock system
Use copy function to copy the IMG
Copy & paste with a new name
Use FlashFire (fully supported on virtual/stock ROMs)
...
If you've IMG mounting issues, run the following commands:
Code:
mount -o remount,rw /system
busybox ln -sv /proc/self/mounts /system/etc/mtab
If this doesn't help, try mounting from Terminal Emulator or ADB shell after selecting the IMG in MultiSystem app, by running the following command:
Code:
MultiSystem mount virtual
@hsbadr
Multisystem is running on AT&T
and permissive is activated
I had to add symlink in installer
symlink("/MultiSystem/bin/MultiSystem", "/system/xbin/MultiSystem");
and I had to remove the cleaning script
Also no matter how tried (FlashFire and even Safestrap) the multiSystem apk would not install, I had to copy to sdcard and install with file manager or es explorer
Can i root my 9005?
Hi all, I have the note3 9005xxugboa2 running on kitkat 5.0. The most recent update. Since i updated it its slow as hell. I wanted to root it anyway but now more so. The problem is when i search for the method for my version it brings up too many results of people rooting and upgrading to kitkat. Not rooting from kitkat. Also i dont even know if im at&t lol. I have done this before though. If any1 could point me in the right direction it would save me a few hours later tonight. thanks
Great! I'll release v1.2.1 tonight with minor fixes/updates.
hsbadr said:
Great! I'll release v1.2.1 tonight with minor fixes/updates.
Click to expand...
Click to collapse
hsbadr updat installed fine, took me a couple reboots, but it may just be me. Permissive is set and running on sdcard going to install darkLord beta 2
MultiSystem status show different this time
carl1961 said:
hsbadr updat installed fine, took me a couple reboots, but it may just be me. Permissive is set and running on sdcard going to install darkLord beta 2
MultiSystem status show different this time
Click to expand...
Click to collapse
It is NOT; status NOT Status
Code:
MultiSystem status
Also enjoy bash shell with perfect environment
Code:
su
bash
MultiSystem Video Tutorial
Thanks To: @Tomsgt , aka RootJunky
Don't forget to subscribe & like the video to show appreciation of his great effort & time spent in making the video :highfive::good:
Ok
Related
Darktremor A2SD version 2.7 Update 3r1 (2010-06-26)
18 Roms install with Darktremor A2SD across 6 different Android phones.
Note: 2.7 update 3r1 fixes an issue where dalvik-cache was automatically loading to the SD card on boot. This may have been causing issues with some of the roms out there (especially Blue Echo 2.1.4). Thanks to Papa Smurf151 and Flipzmode for bringing this to my attention.
2.7 update 3r1 also has a2sd functions moved to launcha2sd...this program runs under bash instead of sh. This will help with roms that have issues where the open bracket on an IF statement is treated as a command rather than a condition ( [: not found )
Features for 2.7 update 3:
2.7 update 3 is all about dalvik-cache.
I noticed that some rom developers have been putting their dalvik-cache onto the /cache partition. This partition is a large (usually as large as the /data partition) that is mostly unused (I'm sure it is needed for installs, etc). I've taken that idea and applied it to Darktremor A2SD.
If you are running a rom that has uses the cache partition to store dalvik-cache, this update will not force it to move back to the internal storage.
It introduces new algorithms to detect dalvik-cache on cache partition. It also adds two new options:
a2sd cachepart - Moves the dalvik-cache to the cache partition
a2sd cachesd - Moves the dalvik-cache to the SD card (same as a2sd cache...eventually, a2sd cache will be deprecated).
If you experience boot loops when you move the dalvik-cache to the cache partition, go into adb shell while the phone is boot looping and run the following commands:
a2sd nocache (if you want to put your dalvik-cache on your internal storage) or a2sd cachesd (if you want to put your dalvik-cache on your SD card)
a2sd resetcache (this clears the dalvik-cache and reboots)
Click to expand...
Click to collapse
If you are using Modaco's ROM, Darktremor A2SD isn't guaranteed to work with this rom. I'm investigating as to why, but keep in mind that if the phone goes into a bootloop, restore your phone via Nandroid. If you are submitting a problem to me when using Modaco ROM, include a logcat when the phone first boots. This will help me try to identify the issue and possibly release a workaround update.
Click to expand...
Click to collapse
Do a nandroid backup first of your working ROM. This is in case you find a bug (or run into an issue) and have to reload your phone.
Click to expand...
Click to collapse
If you are visiting the Hero CDMA forums and you use another Android-based phone, I encourage you to try the Darktremor A2SD on your phone. I would like to expand this program beyond the Hero CDMA if possible.
Look in the credits below to see the Roms that have been tested.
Here's the program:
2.7 Update 3r1 - http://www.darktremor.info/files/a2sd/a2sd-2.7-update3r1-signed.zip
Requirement: An ext2, ext3, or ext4 partition on your SD Card and a custom Rom that supports Apps2SD or A2SD
A2SD will not work on stock HTC Rom as stock roms do not have any method of launching A2SD in the boot image (unless they have been modified to work with A2SD). Try one of the many custom roms available if you want to use A2SD.
What is this?
A2SD (also known as Apps2SD) is a script that runs when you phone boots. Many of the ROM developers include the script in one form or another. Originally based on Cyanogen's Apps2SD, this script will allow a user to free up more storage space on their phone.
How does it do it? It uses an ext2, ext3 or ext4 partition (if one exists) to move all your free and purchased apps (not core apps) to the ext2/ext/ext4 partition on your SD card. It also tricks Android into thinking it is storing your programs in the internal storage space by linking the install directories (/data/app and /data/app-private) to similar directories on the sd card.
Current roms that have Darktremor A2SD built in:
Note: Be careful when choosing a rom. Flash a rom not designed for your phone and you may brick it.
I'm not responsible for bricked phones due to wrong rom flashed. Flash at your own risk.
Fresh Rom 2.1.2 (CDMA Hero) - http://forum.xda-developers.com/showthread.php?t=681856
FreshToast 2.1 (CDMA Hero) - http://forum.xda-developers.com/showthread.php?t=683746
Sprint 2.1 Stock ROM (CDMA Hero) - http://forum.xda-developers.com/showthread.php?t=703267
ZenEXP 0.9.6.2 (CDMA Hero) - http://forum.xda-developers.com/showthread.php?t=666967
Buufed 1.7.2 (CDMA Hero) - http://forum.xda-developers.com/showthread.php?t=689142
Blue Echo 2.1.5 (CDMA Hero) - http://forum.xda-developers.com/showthread.php?t=699975
HoneyBun v.3 (CDMA Hero) - http://forum.androidcentral.com/htc-hero-roms-hacks/14674-honeybun-v1-based-off-official-ruu.html
Click to expand...
Click to collapse
ZenExp Eris Expresso Rev 7 (HTC Eris) - http://forum.xda-developers.com/showthread.php?t=688687
Fresh Rom 2.1.1 for Eris (HTC Eris) - http://forum.xda-developers.com/showthread.php?t=674170
Buufed 1.7.2 for Eris (HTC Eris) - http://forum.xda-developers.com/showthread.php?t=690902
Eris Lightning 3.02 (HTC Eris) - http://forum.xda-developers.com/showthread.php?t=675957
Evil Eris 2.0.1 (HTC Eris) - http://forum.xda-developers.com/showthread.php?t=650302
Click to expand...
Click to collapse
Fresh Evo 0.3 (HTC Evo) - http://forum.xda-developers.com/showthread.php?t=700448
Supersonic 2.0 (HTC Evo) - http://forum.xda-developers.com/showthread.php?t=698594
Click to expand...
Click to collapse
Daguu Espresso Rom v1.2 (GSM Hero) - http://forum.xda-developers.com/showthread.php?t=693069
Click to expand...
Click to collapse
Kang-o-rama 0.9 Froyo ROM (Nexus One) - http://forum.xda-developers.com/showthread.php?p=6973422
Click to expand...
Click to collapse
Pulse Oscillation Rom R7B (T-Mobile Pulse) - http://android.modaco.com/content/t...daco-com/309811/pulse-2-1-oscillation-rom-r7/
FLB-Mod (T-Mobile Pulse) - http://android.modaco.com/content/t...sed-vanilla-ish-rom-with-tweaks/#entry1303318
Note: T-Mobile Pulse is made by Huawei, which puts this as the first phone outside the HTC phones that Darktremor A2SD works on. There's hope for the Samsung Moment yet.
Click to expand...
Click to collapse
I'm may have left some off this list. If your rom isn't on this list, send me a PM with the name and location (thread) so I know how to properly catalog it.
Click to expand...
Click to collapse
To find out all the features you can do with Darktremor A2SD, type /system/bin/a2sd help in the phone's terminal shell (or adb shell).
HOW TO INSTALL:
Since you are flashing this version to your phone, do a nandroid backup of your phone before starting these instructions. Also, it is preferred you use RA 1.6.2 Recovery or Godspeed Recovery (there may be issues with earlier recovery versions...I am checking this out).
1. Download the program above.
2. Determine if you have setup your SD Card with an ext partition
If you have setup your SD card already (existing users of A2SD...any version):
a. Copy the program to your SD card. One way of doing that is to use ADB by typing this command:
adb push a2sd-2.7-3r1-signed.zip /sdcard/a2sd-2.7-3r1-signed.zip
b. Reboot into recovery
Click to expand...
Click to collapse
If you have not setup your SD card (for those new to A2SD):
a. BACKUP YOUR SD CARD TO YOUR COMPUTER. Can't stress this enough, as partitioning will wipe the entire card.
b. Reboot into recovery
c. In Android System Recovery, select Partition sdcard
d. In the Partition sdcard menu, select Partition SD
e. Follow the instructions on the phone to partition your SD card. You can optionally set a swap file while you are partitioning your SD card.
f. In the Partition sdcard menu, select SD:ext2 to ext3. Follow the instructions on the screen.
g. Only perform this step if you want ext4 and your ROM supports it: In the partition sdcard menu, select SD:ext3 to ext4. Follow the instructions on the sdcard.
h. Press the back button on the phone to go back to the main menu.
i. Put the A2SD file on the SD card (and all your other files you backed up earlier) by selecting USB-MS toggle and transfer the files to your computer.
Click to expand...
Click to collapse
3. In recovery, select Flash zip from sdcard.
4. In Flash zip from sdcard, select the a2sd package file you downloaded earlier. Press HOME to flash.
5. Reboot phone.
Click to expand...
Click to collapse
NOTE: Due to an issue with the Sprint Hero source code, ext4 partitions may only work intermittently. You may not want to use an ext4 partition unless the ROM you are using is certified to have a working ext4 partition. If you have issues with ext4, repartition your SD card for ext3.
Click to expand...
Click to collapse
If you apply this program and your market suddenly stops working, perform the following steps:
1. Remount your internal storage to read-write by typing adb remount
2. Go into your phone's terminal by typing adb shell
3. Type /system/bin/a2sd fixmarket. This will relocate the market to /system/app and allows you to choose it in the All Programs screen. You will need to drag it back onto your desktop if you want it there.
Click to expand...
Click to collapse
NOTE: If you apply Darktremor A2SD 2.7 and still notice internal storage is decreasing, this is due to the dalvik-cache not being moved. By default, Darktremor A2SD will not move the dalvik-cache on boot.
If you want to move the dalvik-cache to the sd card, type:
a2sd cache (old command to move dalvik to SD card - will be phased out soon)
a2sd cachesd (new command to move dalvik to SD card)
a2sd cachepart (command to move dalvik to cache partition)
Make sure your SD card is at least a Class 4 before doing this, otherwise you may run into performance issues, unless you move the dalvik to the cache partition.
You still have other caches (i.e. browser caches) and other data being stored and updated in Internal Storage, so the number of free space will continue to drop, but at a slower rate (unless you are engage in heavy web surfing, tweeting or facebook socializing.)
Click to expand...
Click to collapse
What does this program do:
1. Moves applications to the sd card
2. Moves dalvik-cache to the sd card (a2sd cachesd) or to the cache partition (a2sd cachepart...when the rom supports it). Not active on boot by default.
3. Activates swap partition if one exists (a2sd swap to activate, a2sd noswap to deactivate)
4. Allows the user to deactivate a2sd without removing the ext2/ext3 partition (a2sd remove to deactivate, a2sd install to activate)
5. Allows the user to restore dalvik-cache back to the main memory (a2sd nocache)
6. Allows the user to deactivate swap (a2sd noswap to deactivate, a2sd swap to activate)
7. Creates the /system/sd mount if one doesn't exists.
8. Checks the symlinks and flag files. Reports to the user what needs to be repaired. (a2sd check)
9. Repair symlinks based on active flag files. (a2sd repair)
10. Zipaligns all programs in /data/app and /data/app-private. Using the align command, /system/app will also be zipaligned. You can turn on and off ZipAlign (a2sd zipalign / a2sd nozipalign). Not active on boot by default.
11. Wipes dalvik-cache without the need to go into a recovery partition (a2sd resetcache)
12. Checks how much space is being used on your ext partition (a2sd diskspace)
13. Repairs missing or corrupted market in Android 2.1 (a2sd fixmarket)
14. Uses its own Busybox installation to ensure stability (/system/bin/busybox.a2sd)
How to tell if it is working:
1. On your computer in the Android SDK Tools directory, type adb shell
2. In the adb shell, type /system/bin/a2sd check
3. Read the report. It will tell you if all is well. If you see anything with [X], type a2sd repair
If you want to move the apps to the SD card (when the program doesn't do it for you or you have moved the apps to the internal storage in the past):
1. Enter the ADB Shell by typing adb shell
2. In the ADB shell, type /system/bin/a2sd install
To prevent A2SD from running, type /system/bin/a2sd remove
If you have any issues, you can PM me for assistance, send e-mail to rtkirton at gmail dot com, or look me up on gtalk.
Special Thanks to the following people
Thanks to the following people for helping me on this (2.7 testing):
Toastcfh
- For assisting me in getting my test kernel setup to run ext4...that helped tremendously with development.
- For testing it (along with Flipzmode) on FreshToast 2.0 (CDMA Hero).
- For (along with Flipzmode) helping to identify the disappearing marketplace issue.
shahid.malik
- For testing on VillianROM 5.5 (GSM Hero)
- For testing on VanillaEclair 2.0.1 (GSM Hero)
Andrizoid
- For testing on Evil Eris 2.0 (HTC Eris)
Framework43
- For adding to Evil Eris 2.0.1 (HTC Eris)
DS36
- For testing on Eris Official 1.0 Alpha w/ Controllable Overclocking (HTC Eris)
4SidedDice (and others)
- For testing it on DamageControl's 2.08 and later (CDMA Hero)
Flipzmode
- For including it (along with Toastcfh) in FreshToast 2.0 (CDMA Hero)
- For including it in Fresh 2.1.x (CDMA Hero)
- For including it in Fresh Evo (HTC Evo)
- For (along with Toastcfh) helping to identify the disappearing marketplace issue.
Kurt666
- For testing on Pay's ROM for Desire v1.4 (HTC Desire)
Cordy
- For helping with general testing of 2.7
zygame
- For including it on Daguu_Espresso_v1.2_By_FlZyGaMeUp-Pre-release-2
chuckhriczko
- For including it in SuperSonic v2.0 (HTC Evo)
zenulator
- For including it in ZenEXP 0.9.6.2 (HTC Hero)
crunchybutternut
- For including it in Buufed 1.7.2 (HTC Hero)
.mac
- For including it in ZenEXP Eris Expresso (HTC Eris)
Papa Smurf151
- For including it in Blue Echo 2.1.3 (HTC Hero)
beezy420
- For including it in HoneyBun v.3 (HTC Hero)
britoso
- For testing it on Froyo FRF50 and FRF83 (Nexus One)
djmcnz
- For including it in Kang-o-rama 0.9 Froyo (Nexus One)
If I forgot anyone...let me know.
Click to expand...
Click to collapse
Change Log
Version 2.7 Update 3r1
1. Fixes a bug in fixa2sd that causes the dalvik-cache to automatically move to the SD card.
2. Created a new program called launcha2sd that now does the launching functions of a2sd. The program a2sd now launches launcha2sd using bash. This fixes any /system/bin/sh issues with open brackets being interpreted at commands rather than conditions in an IF statement.
Version 2.7 Update 3
1. If a rom has the dalvik-cache on the cache partition, it will not attempt to move it to the internal cache.
2. Users now have an option to move the dalvik-cache to the cache partition. The option to move dalvik-cache to the SD card is still retained.
3. New commands introduced: cachepart moves dalvik-cache to cache partition, cachesd moves dalvik-cache to sd card (phased replacement to a2sd cache).
4. Fixes some minor bugs.
Version 2.7 Update 2
1. The /system partition returns to read-only state when the program is finished. The /data partition is left untouched.
2. ZipAlign does not automatically start on boot. You must type a2sd zipalign to activate the start on boot feature.
3. Taken out visual references of CyanogenMod's cm.filesystem.ready and DamageControl's dc.filesystem.ready. It now refers to both visually as "File System Ready property"
4. A2SD Check no longer mounts the ext partition. It will indicate when the ext partition is not already mounted. This should help in troubleshooting roms that do not automatically launch A2SD.
Version 2.7 Update 1
Reversed a decision on 2.7 final to set /system and /data to read-only when the program completes. This is causing major issues with some newer roms.
Version 2.7
1. Completely rebuild the entire program from ground up. Attempted to simplify the process and to better detect different environments.
2. All programs use the included busybox.a2sd to avoid conflicts with the different busybox installations.
3. Mounts /system and /data in read-write to prevent any conflicts. Remounts them in read-only when completed.
4. Except for a2sd, all programs built as bash scripts
5. Separated the original program into the following programs:
a2sd - Simple script that detects whether the init.rc was fixed with the cm.filesystem.ready and sets it accordingly. Starts starta2sd if either a command is included or the cm.filesystem.ready patch is installed, otherwise runs A2SD that does not move dalvik-cache. Runs a smaller version of the boota2sd if the cm.filesystem.ready or dc.filesystem.ready are not present.
starta2sd - Processes all commands...it's the controller program. Adds the following commands: align, zipalign, nozipalign, resetcache, clearcache, fixmarket, diskspace.
boota2sd - Used when the cm.filesystem.ready fix or the dc.filesystem.ready fix is present in init.rc. Resets dalvik-cache, app and app-private to internal storage upon the following conditions:
1. Mount failure or missing ext partition, and
2. Any or all key directories are symlinked to the SD card.
This step prevents a bootloop or a stall from occuring during the boot process. Also incorporates better detection of mounted partition. If it detects the partition mounted in /proc/mounts, it will skip trying to mount.
Automatically executes fixa2sd if the flags and symlinks to dalvik-cache, app and/or app-private do not match.
Also moved the mounting of the swap partition to the end and reintegrated auto partition detection when mounting (similar to A2SD 2.6.1). Added ZipAlign functions.
chka2sd - Incorporates bug fixes that did not detect the dalvik-cache correctly. New report layout (should be simpler to read). Code was simplified.
fixa2sd - Incorporates same bug fixes as chka2sd. Does a better detection of flag files and symlinks. Code was simplified.
setupa2sd - Used to execute setup commands from starta2sd (install, remove, cache, nocache, align, fixmarket). Also controls a2sd help.
aligna2sd - zip aligns all apk files in /data/app and /data/app-private.
010a2sdmodaco - Part of the Beta8 Modaco Desire testing, does the following:
1. If 02cachedalvikcache exists, back the program up and overwrite the program, preventing the contents from executing.
2. if 40a2sd exists, do the same thing.
Version 2.6.1
1. Mainly a bugfix. Corrects the dalvik-cache code where it would put the dalvik-cache back on the sd card even when the flag file was set.
2. Put the flag files back on /system/sd. Fresh 2.0d was incompatible with the new setup (it doesn't mount the /sdcard until later in the boot process).
3. Added code for Fresh 2.0d...the boot can be hung if the dalvik-cache is changed during boot. Program automatically determines if 04apps2sd exists in /system/etc/init.d (this is signature for any roms built from Fresh 2.0d) and automatically sets the NoCache flag if the dalvik-cache is in internal memory and the NoCache flag isn't set.
4. Fixed swap code. It was not turning on swap when it should.
5. (Release 1) - Fixed some minor issues.
6. (Release 2) - Recreated a new flash package that is more compatible with different recovery system.
Version 2.6
1. Moves all flag files from /system/sd to /sdcard. The kernel mounts the FAT32 SD partition and that will be available before Apps2SD runs. Future flag file creation will be in /sdcard.
2. Added a check feature (a2sd check). This will check your flag files and symlinks. A report on your screen will tell you what needs to be fixed, if any.
3. Added a repair feature (a2sd repair). This will repair your a2sd installation.
4. Flashing the A2SD checks Busybox installation and reinstalls it if necessary (it only checks for a missing Busybox installation...it won't replace the one you have installed).
5. Automatically remounts /system and /data partitions for read-write access when started with any of the install/repair options (install, repair, cache, nocache, remove).
6. Fixed mount command...now uses auto detect rather than the individual partitions. This allows A2SD to work on ext4.
7. Separate nocache version available for slower SD cards.
Version 2.5
1. Added functionality to move dalvik-cache to the ext partition.
2. Added option a2sd cache to manually move the dalvik-cache to the ext partition.
3. Added option a2sd nocache to manually move the dalvik-cache back to the internal phone storage.
4. Added option a2sd install to setup a2sd on a phone (all apps and dalvik-cache on ext partition)
5. Added option a2sd remove to revert all a2sd changes back to normal mode (all apps and dalvik-cache in internal storage).
6. Added option a2sd noswap to turn off swap partition.
7. Added option a2sd swap to turn on swap partition.
Click to expand...
Click to collapse
I just tried this with EE 3.0 and it threw me into a boot loop after checking and repairing it. Had to do a Nand restore for now, I'll try it again in the morning.
Edit-Got it off the boot loop when I moved all the apps back to int. memory, so not quite sure whats causing the boot loop.
EE3 isn't setup to run A2SD.
However, you're in luck. In the thread, I posted a kernel for EE3 that will work.
Since it is buried in the thread, here's the kernel:
http://www.darktremor.info/files/eris/ee3kernel-signed.zip
Duffman3005 said:
I just tried this with EE 3.0 and it threw me into a boot loop after checking and repairing it. Had to do a Nand restore for now, I'll try it again in the morning.
Edit-Got it off the boot loop when I moved all the apps back to int. memory, so not quite sure whats causing the boot loop.
Click to expand...
Click to collapse
Thank you so much, it worked perfectly!
Works great
+1
Using EE3, I flashed the Kernel, than A2SD...life is golden!
Now, what to do with all that internal memory...
strongergravity said:
+1
Using EE3, I flashed the Kernel, than A2SD...life is golden!
Now, what to do with all that internal memory...
Click to expand...
Click to collapse
Hmm I did it in the opposite order, but I guess it doesn't matter ha.\
New Darktremor A2SD 2.7 update 3r1 is available. Fixes bug in fixa2sd that may cause the dalvik-cache to be moved to the SD card automatically.
Also, incorporates a new method of starting a2sd...the file a2sd moved to launcha2sd...the file a2sd now just launches launcha2sd. launcha2sd run in bash, this is to add more stability in roms.
Installation aborted
When I try to flash app2sd update 3r1, it said that:
failure at line 6
E:\ can't chorm ......
No such file directory
Installation aborted
What's wrong with my phone
T-Mobile G1
SPL 1.33.2005
Rom: E-Xtreme Froyo v1.9.5
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?
Update something
[Edit Philz 6.2.3+ is perfect & does not mess with my swap anymore.]
messed with the install-recovery.sh!
So just reflash the swap , not sure what did it : an xposed modual?
v5 up.
Works now even if on bone stock.
Step 1: (for those rooted, on the ota or out of the box)
Install this https://play.google.com/store/apps/details?id=stericson.busybox
Use the smart install & choose 1.21.1 not 1.22. http://forum.xda-developers.com/showpost.php?p=50064227&postcount=4
Do not use Universal init d.
Reboot.
Step 2:
Flash v5 with Twrp2.6.3 e33 or Philz v6079.
For SafeStrap users using bootstrap, should work.
Reboot.
TWRP e33: http://forum.xda-developers.com/showpost.php?p=49509466&postcount=1
Fixed conflicts with my ◢ PurePerformances™X ◣ mod.
You can only successfully install with Plilz v6079. I only use, for now the one below.
Once installed TWRP does not seem to be a problem.
Plilz v6 for msm8960 phones: Atrix HD, Razr M & Photon Q is here
Took down the deodexed version as it was only the ui from this 1% battery mod that made it different. You can flash it to any deodexed 412 xt907 or xt905 rom.
All storage defaults to storage0 (your real SD card) which is the way it should have been from Motorola, well closer anyway.
Flash from recovery or SS bootstrap Philz v6. Wipe dalvik & cache only. Not for cm based, multuser, or anything but 4.1.2 stock roms!
My ◢ PurePerformances™X ◣ mod must be followed by the SD Swap. Because of a conflict with install-recovery.sh file.
Do not use cwmr 6044 as it messes up the swap by forcing data/media/0. Plilz is better as you can choose data/media only. See my goodies for Philz.
Always use TWRP 2.6.3 e33 OR Philz v6079.(for install use Philz only)
Always choose any NO when rebooting from Philz.
Go Recovery Goodies
Because install-recovery.sh is now an agent in the initd setup & needs to be protected.
Notes on the SD swap: When you choose "Device storage", sdcard0 or storage0 you will browsing your real SD card. When you choose "SD card", sdcard1 or storage1 you will be browsing the internal SD ("data/media").
This internal SD ("data/media") memory now has no purpose. You can move what you want to your real SD & delete everything else to let the phone use it all. All storage defaults to storage0 (your real SD card) which now is the way it should have been from Motorola, well closer anyway.
ZaYAC-ua's swap thread
The formerly unwanted file: install-recovery.sh is now an agent in the initd setup & needs to be protected, as noted above, and it's permissions, if altered, can be restored to rwxr-xr-x.
If this file is not protected you boot up with 2 internal SD cards.
Known issues:
Two things will Kill the SD swap: (by messing with install-recovery.sh)
1)Using TWRP older then v2.6. (To install use Philz only)
2)If you boot from CWMR and choose yes to "disable recovery flash".
Also) If you mess with multiuser roms feel free to delete 0 , obb & legacy folders in internal sd (storage1).
One more) It is expected for your settings-storage info to be out of whack.
Finally) Create folder in root of the phone with Root Explorer results in an error but is the same as the Rabbit's version & of no consequence. The folder does get created anyway. All else works in the root of the phone.
UsbMassStorage: BE SURE TO EJECT FROM PC/MAC BEFORE YOU UNMOUNT. DO NOT USE WITH ANDROID FILE TRANSFER.
".files" are a nuisance when mounting to osx: just delete them AFTER YOU UNMOUNT. Warning: If you do not enable your file browser to show hidden files & you unmount while your (os x is one) trash is full the .file can be huge!
More http://forum.xda-developers.com/showpost.php?p=43434787&postcount=3
V1 DL stats: deodexed-31, odexed-49
Reserved
V3 up. Fixes compatibility w/ PP mod. Twrp will not install the swap & let it work! Plilz v6 will & does twrp restores too....
I'm using this script to swap the storage on PACman and other 4.3 roms that lacks the swap option natively, I guess your solution is more or less the same, using the restore recovery script instead of the real init.d script.
Right ?
Code:
#!/system/bin/sh
sleep 3
mount -o remount,rw /
mount -t vfat -o umask=0000 /dev/block/vold/179:97 /mnt/shell/emulated
mount -o bind /data/media/0 /storage/sdcard1
chown system /data/media/0
chgrp sdcard_rw /data/media/0
chmod 0075 /data/media/0
mount -o remount, ro /
The Solutor said:
I'm using this script to swap the storage on PACman and other 4.3 roms that lacks the swap option natively, I guess your solution is more or less the same, using the restore recovery script instead of the real init.d script.
Right ?
Code:
#!/system/bin/sh
sleep 3
mount -o remount,rw /
mount -t vfat -o umask=0000 /dev/block/vold/179:97 /mnt/shell/emulated
mount -o bind /data/media/0 /storage/sdcard1
chown system /data/media/0
chgrp sdcard_rw /data/media/0
chmod 0075 /data/media/0
mount -o remount, ro /
Click to expand...
Click to collapse
Thanks. Did you have a link? I have never found one that works for 4.1.2 + !
aviwdoowks said:
Thanks. Did you have a link? I have never found one that works for 4.1.2 + !
Click to expand...
Click to collapse
A link ?
That's all I'm using, just copy it save it to (say) 02sdswap, put the file in the /etc/init.d folder and set the permissions as the other init.d files.
Then reboot the phone.
That's all
Keep in mind to use a decent editor and set the end line format to UNIX.
I'm using it on 4.3 on PhotonQ but it should work, as is, on other similar phones like the Razr M, or with little adjustment in other phones.
Is far from perfect but looks to be enough to solve the problem.
The Solutor said:
A link ?
That's all I'm using, just copy it save it to (say) 02sdswap, put the file in the /etc/init.d folder and set the permissions as the other init.d files.
Then reboot the phone.
That's all
Keep in mind to use a decent editor and set the end line format to UNIX.
I'm using it on 4.3 on PhotonQ but it should work, as is, on other similar phones like the Razr M, or with little adjustment in other phones.
Is far from perfect but looks to be enough to solve the problem.
Click to expand...
Click to collapse
Just tried it, removing the "/0" from each line w/ datamedia.
No go for 412.
aviwdoowks said:
No go for 412.
Click to expand...
Click to collapse
Practically I've never used JB 4.1.2, as I see no point in doing it.
Depending on my moot I use my internationalized ICS, or a good 4.3 unofficial rom.
Bacause this, I don't remember exactly the changes in paths and symlinks between 4.1.2 and 4.3
But very likely the /mnt/shell/emulated is not present on 4.1.2, just check if I'm not wrong, and eventually change the /mnt/shell/emulated to the correct mountpoint.
V4 up. Much improved. Only the install-recovery.sh annoyance to overcome. I am trying a "userint.sh" version. Anyone know if that is do-able on a moto phone? Htc phones use it with a swap.
Couple this concise commentary of the data media problem,
http://teamw.in/DataMedia
[translation: data/media is useless if you have ext sd as default storage.
It needs to be formatted for reliable rom flashes (esp. 4.4)
& you can do it from Philz! ]
With the ability to use a large sd card on our phone,
then you understand why keeping data media zeroed out along with a sd swap is so nice.
Where oh where is a swap for 4.4?
Btw a new Plilz with ext sd cwm folder detection :fingers-crossed: due out soon.
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?
WARNING - I AM NOT RESPONSIBLE FOR WHATSOEVER DAMAGE CAUSED TO YOU OR YOUR DEVICE OR YOUR SD CARD ITS YOU WHO IS TAKING RISK SO YOU WILL BE RESPONSIBLE FOR THE SAME ,THIS IS A POTENTIALLY RISKY THING SO BEWARE THAT YOU DONT DO ANYTHING OUT OF GUIDE BY VIRTUE OF YOUR DISCRETION.
Note :- This guude may at times may frustrate you but keep patience as its fruits will b sweet
Note2 :- Sd card recommended is class 10 and not class 6 as per my experience on lollipop this os require high io capabilities.
Note3:-This guide is made around twrp recovery so philz lovers may have problem with this ,sorry for that but cant do anything about that, a addition in custom twrp will be that you can backup/restore NVRAM AND OEM PARTITIONS.
So now lets start
.1.First of all we start with partitioning sdcard;
Warning : backup your sdcard before partitioning.
(i) Partition the sdcard in 4 parts (for this you can use Gparted(Ubuntu) or mini partition tool (windows))
(ii)For 32gb sdcard (my partition sizes)
P1 size 24.6 GB filesystem fat32 To be used as mass storage(Primary partition)
P2 size 900 MB filesystem EXT4 To be used as /system(Primary partition)
P3 size 4 GB filesystem EXT4 To be used as /data (Primary partition)
P4 size 150 MB filesystem EXT4 To be used as /cache (Primary partition)
Note : you can vary these sizes according to your need ad storage constraints but no no /system /data /cache shall b less than 800mb 1gb 70mb respectively.
(iii) Now comes rom installing part;
Note : Prefer to keep stable ROMs like stock kk or cm11 on internal and bleeding edge ROMs like lollipop on sd.
(a) if you installing lollipop 5.1 By backup then ,
- using philz restore it, guve it first boot;
-switch to official twrp backup the /system /data /cache and name tge backup as "lollipop"
-Install whichever rom you want in internal storage (preferably kk);
-Now switch to custom TWRP recovery (download link given in end of this post);
-paste in the lollipop backup "boot" backup(boot.emmc.win) and (download link given in end of this post);
(b)if you are installing lollipop rom by zip then
-edit updater script of the rom's zip and change the partition address
Open updater script with notepad++
Find - mmcblk0p14
Replace with - mmcblk1p2
Find - mmcblk0p16
Replace with - mmcblk1p3
Find - mmcblk0p15
Replace with - mmcblk1p4
-save it;
-repack tge zip;
-Besure that you are on custom TWRP
-FLASH ZIP
-done.
Congratulations you have dual booted your phone
(iv)To switch between the ROMs you just have to to flash /boot partition
-for booting into sd's rom (lollipop) restore lollipop backup's boot;
-For booting into emmc's rom flash that rom's boot.imh
(For convenience and ease backup emmc rom's boot by twrp and then whenever you want to switch just restore emmc's or sd's(given in download link) rom boot backup as the caee may be reboot into system)
FAQs
Q.Why kk on internal and lollipop on sd
Ans. So that on one hand you can live on bleeding edge while not compromising stability.
Q Is there any danger to my sd card?
Ans. Yes, it may be corrupted( but its rare).
Dowload links
"Boot" backup
https://mega.co.nz/#!M55UBT4K!_qaXRcIxEs5yiP7wRzGJAbRRNav6YV3XZIcWni3C0pg
Custom TWRP
https://mega.co.nz/#!h5QnEahb!A9fGbws11yd27vh9gBz3X9HCbJYn6PHLdMFgYeAJEPw
Suppose I don't want dual boot and I wan't my lollipop's /data partition only to be on the SD card with other partitions on the Internal memory, will I be able to do it by changing the updater script as "Find - mmcblk0p16
Replace with - mmcblk1p3" from your guide and keeping the other partitions unchanged?? Or do I have to do other changes?? Thanks in advance...
Massive one ....much waited for this
varunrocks17 said:
WARNING - I AM NOT RESPONSIBLE FOR WHATSOEVER DAMAGE CAUSED TO YOU OR YOUR DEVICE OR YOUR SD CARD ITS YOU WHO IS TAKING RISK SO YOU WILL BE RESPONSIBLE FOR THE SAME ,THIS IS A POTENTIALLY RISKY THING SO BEWARE THAT YOU DONT DO ANYTHING OUT OF GUIDE BY VIRTUE OF YOUR DISCRETION.
Note :- This guude may at times may frustrate you but keep patience as its fruits will b sweet
Note2 :- Sd card recommended is class 10 and not class 6 as per my experience on lollipop this os require high io capabilities.
Note3:-This guide is made around twrp recovery so philz lovers may have problem with this ,sorry for that but cant do anything about that, a addition in custom twrp will be that you can backup/restore NVRAM AND OEM PARTITIONS.
So now lets start
.1.First of all we start with partitioning sdcard;
Warning : backup your sdcard before partitioning.
(i) Partition the sdcard in 4 parts (for this you can use Gparted(Ubuntu) or mini partition tool (windows))
(ii)For 32gb sdcard (my partition sizes)
P1 size 24.6 GB filesystem fat32 To be used as mass storage(Primary partition)
P2 size 900 MB filesystem EXT4 To be used as /system(Primary partition)
P3 size 4 GB filesystem EXT4 To be used as /data (Primary partition)
P4 size 150 MB filesystem EXT4 To be used as /cache (Primary partition)
Note : you can vary these sizes according to your need ad storage constraints but no no /system /data /cache shall b less than 800mb 1gb 70mb respectively.
(iii) Now comes rom installing part;
Note : Prefer to keep stable ROMs like stock kk or cm11 on internal and bleeding edge ROMs like lollipop on sd.
(a) if you installing lollipop 5.1 By backup then ,
- using philz restore it, guve it first boot;
-switch to official twrp backup the /system /data /cache and name tge backup as "lollipop"
-Install whichever rom you want in internal storage (preferably kk);
-Now switch to custom TWRP recovery (download link given in end of this post);
-paste in the lollipop backup "boot" backup(boot.emmc.win) and (download link given in end of this post);
(b)if you are installing lollipop rom by zip then
-edit updater script of the rom's zip and change the partition address
Open updater script with notepad++
Find - mmcblk0p14
Replace with - mmcblk1p2
Find - mmcblk0p16
Replace with - mmcblk1p3
Find - mmcblk0p15
Replace with - mmcblk1p4
-save it;
-repack tge zip;
-Besure that you are on custom TWRP
-FLASH ZIP
-done.
Congratulations you have dual booted your phone
(iv)To switch between the ROMs you just have to to flash /boot partition
-for booting into sd's rom (lollipop) restore lollipop backup's boot;
-For booting into emmc's rom flash that rom's boot.imh
(For convenience and ease backup emmc rom's boot by twrp and then whenever you want to switch just restore emmc's or sd's(given in download link) rom boot backup as the caee may be reboot into system)
FAQs
Q.Why kk on internal and lollipop on sd
Ans. So that on one hand you can live on bleeding edge while not compromising stability.
Q Is there any danger to my sd card?
Ans. Yes, it may be corrupted( but its rare).
Click to expand...
Click to collapse
http://www.amazon.in/gp/aw/d/B00L543E3K?qid=1426133570&sr=8-5&vs=1
Can i use this card in canvas a1 for dual boot help me i want to buy or recommend any other
sauron_sh said:
http://www.amazon.in/gp/aw/d/B00L543E3K?qid=1426133570&sr=8-5&vs=1
Can i use this card in canvas a1 for dual boot help me i want to buy or recommend any other
Click to expand...
Click to collapse
I will recommend sandisk ultra as m using it...but abovementioned also seems to b good
xdaaritra said:
Suppose I don't want dual boot and I wan't my lollipop's /data partition only to be on the SD card with other partitions on the Internal memory, will I be able to do it by changing the updater script as "Find - mmcblk0p16
Replace with - mmcblk1p3" from your guide and keeping the other partitions unchanged?? Or do I have to do other changes?? Thanks in advance...
Click to expand...
Click to collapse
No bro a nw boot.IMG is needed for that btw i have tried that n lost my strontium 466x 32gb as it was corrupted.... so its very risly
D2sd is unstable n very risky
Can I dual boot 2 lollipop roms?
akhilnarang said:
Can I dual boot 2 lollipop roms?
Click to expand...
Click to collapse
Yes u can jus install a general recovery n install/restore a lollipop rom on emmc......but u can install only stock lollipop on sd
More instructions
I am very interested in this thread, I think this is the greatest thread that I can find on Android One Cross-Device General.
But because I still noobs, I had trouble for following the instructions and always stuck in the last step on how to restore the .img file of kk(internal) and Lollipop(sd). I think this thread is too simple and less can be understood for a noobs like me.
So, would you like to add more explanations to help me follow the instructions so that I can make my phone into dual boot mod.
thanks in advance..
userdata only in SD card
userdata in SD card is working and im using it now. I'm on Marshmallow latest.
???you need to edit fstab in boot.img.