[SCRIPT] Multiboot via loop file, completely rewritten [25/10] - Blade Android Development

The script is now completely rewritten and a lot easier to use.
This is the general walkthrough for this script, if you have more questions than this answers please ask in this thread.
Download and unpack the script to the root of your sdcard, the easiest way to do this is to download it to the root of the sdcard and do the following:
1. start terminal session
2. cd /sdcard
3. tar xvf MakeLoopROM-Android-V11.tar
===============================================================================================================================
NEW! READ THIS! - The original ROMs and Packages are now stored in /sdcard/MakeLoopROM/original-roms and /sdcard/MakeLoopROM/original-packages. Copy the ROMs and packages
that you want to convert into those folders!
===============================================================================================================================
Ok, once you're done there you're ready to start the script, it's now completely menu driven.
1. start terminal session
2. cd /sdcard/MakeLoopROM
3. sh startup
That will start up the menu, for a new ROM work your way from 1 - 4 to make your first loop ROM, at the end of 4 it will be ready for installation, for upgrades that install into
existing loop files (that you have made once with step 1) start at step 2.
The menu options and how they work:
1. Make system, data or both loop files
This option will allow you to do just what it says, make the system and data images you'll install your ROM into, it's very
straightforward but i'll give a brief summary of how
it works.
"Do you want to make an image file to hold the system for this ROM? (not neccessary if it's an upgrade from a previous ROM) Y
for yes N for no."
Pretty straightforward, if you don't have a system loop file enter y for yes, if you're going to upgrade then running this
step is completely unneccessary but since you have
chosen to run it, press no.
"What do you want to call your system image? (give it a name you'll remember, like cm-7-system for a cm-7 loop install)"
Name the system loop file, call it whatever you want but make it something relevant to the ROM or you'll end up wondering what
that file is for when you stumble upon it at a
later time. it'll be stored under /multiboot/system-loop-files when it's done.
"What size do you want your system image to be (in MB's)? (WARNING: if you make it too small your ROM +other packages like
gapps might not fit, make it 250)"
The size of /system for the loop ROM, read the thread you downloaded the ROM from to find out what size is ok, i just use 250
for everything in case i want to reuse it with full
at a later time.
"Do you want to make an image file to hold the data for this ROM? (not neccessary if it's an upgrade from a previous ROM or
you want to share a data image with another ROM)
Y for yes N for no."
Same as with the system loop file, if you don't have one, you'll want one, if you're upgrading you shouldn't be running this
step but there is another time when you want to say
no to this, when you want to share a loop file with another installation (not with NAND ROMS). Like for example if you want to
share the data partition between CM-10 and PA-JB.
"What do you want to call your data image? (give it a name you'll remember like cm-7-data for a cm-7 loopinstall)"
Same as for the system loop file, just name it something relevant, the name is of no importance to it's function.
"What size do you want your data image to be (in MB's)? (This file will hold all of your data, don't skimp on the size)"
How many apps do you plan to install? 10 - 50 - 500?
Make it a size that you can live with and that will fit on your sdcard, it really depends on how many apps you'll install.
2. Make a Loop ROM
It's exactly what it says, this will make your loop ROM ready for installation.
"Available ROMs:"
just enter the number that's next to the ROM you want to convert, if it's not there it's because you didn't copy it to /sdcard
/MakeLoopROM/original-roms, you can do so now and
hit r to refresh the list.
"You previously created the system loop file [nameofyourfile], do you want to use it for this ROM? (y/n)"
You'll only get this question if you created a system loop file by going through step 1. If you did so and that's the file you
want to use (check the [nameofyourfile]) then
answer y for yes, otherwise you answer n for no and the following question comes up.
"Available system loop files:"
This choice will only come up if you answered no to the previous question or didn't make your system loop file with the script
in step 1 during this session. Anyways, just enter
the number next to the file you want to use as a system loop file.
"You previously created the data loop file [nameofyourfile], do you want to use it for this ROM? (y/n)"
See the system loop file above, this is the same but for the data loop file
"Available data loop files:"
See the system loop file above, this is the same but for the data loop files
Do you want this installation to format the data image used with this ROM?
Answer Y for yes if it's a new installation and N for no if you are upgrading
and want to keep the data on the data image. (Say yes if you would run wipe
data/factory reset in recovery if this was a normal install)
Y if this is a new install or you're reusing an old data loop file that you want to wipe.
when done hit enter to get back to the menu.
3. Make a loop package (such as gapps)
This, like it says, is for converting non-rom packages (not kernel packages though) such as gapps or bravia or what have you.
"Available packages:"
type the number that is next to the package you want to convert, if the package isn't there you didn't copy it to /sdcard
/MakeLoopROM/original-packages
"You previously created the system loop file [nameofyourfile], do you want to use it for this ROM? (y/n)"
You'll only get this question if you created a system loop file by going through step 1. If you did so and that's the file you
want to use (check the [nameofyourfile]) then
answer y for yes, otherwise you answer n for no and the following question comes up.
"Available system loop files:"
This choice will only come up if you answered no to the previous question or didn't make your system loop file with the script
in step 1 during this session. Anyways, just enter
the number next to the file you want to use as a system loop file.
Repeat No. 3 for all your packages
4. Make (or update) NAND boot image.
This will read the information in your boot partition and store it as boot.img under /sdcard/multiboot so you can boot back to
your NAND installed ROM by running step 6 or
flashing nandboot.zip (also stored under /sdcard/multiboot) from cwm.
Run this every time you update your NAND ROM so the boot.img is fresh.
"This script will update your nand boot.img in the multiboot folder to the version of boot.img you're currently running, make
sure you're running the updated ROM and not
a loop ROM before hitting Y for yes here. If you're not sure type N for no."
If you updated your NAND ROM or haven't run this option before you have to say y for yes here, you have to run this option at
least once or you can't boot back to NAND. Just
make sure you've got your NAND ROM booted and not a loop rom because this will take the boot partition content of your
currently running ROM.
5. Remove a loop installation
If you've come this far you know what you're doing in this option. I'm not going to go through all combinations but they are
self-explanatory.
6. Boot an installed ROM.
Exactly what it says, just remember that even non-installed ROMs may be listed here, if you happen to try to boot to one of
those it will hang at boot, in that case, pull the
battery, reboot to recovery (press and hold vol down while you press power) and use the boot zips that have been created for
your roms.
the Boot zips are located in /sdcard/multiboot/nandboot.zip for the NAND and /sdcard/multiboot/loop-roms
/[namofyoursystemloopfile]/[nameofyourROM]boot.zips
I think that's all, if there is any questions, feel free to ask.
Android version: MakeLoopROM-Android-V11.tar
MD5: 1b33ad6c3078711444c01867e436b65a
===============================================DEPRECATED==============================================================
It took a while but i managed to sort out how to boot to loop filesystems stored on the SD-card.
This means that you don't have to partition anything and you can have as many ROMs installed as you can fit on your SD-card.
You don't have to worry about a2sd/S2E/mounts2sd or anything like that (just make your data partition large enough to hold your apps, you can share the data partition between as many loop ROMs as you like) but this doesn't prevent it either, your sd-ext partition will be untouched and mountable by any ROM you install into a loop file (if the ROM supports sd-ext, that is). Swap will work just fine too.
The script is self explanatory but there are a few things it doesn't explain so i'll explain it here.
Here we go:
1a. Download the MakeLoopROM(version).zip and unpack it to any directory of your choice, just remember where you put it, if you're going to do this under cygwin i suggest you put it in a directory that is easily accessible from the cygwin terminal (IE cygwin/home/"yourusername") and if you're using Linux, just unzip it to your home directory.
1b. Download the MakeLoopROM-Android.tar and unpack it to the root of your sdcard or copy the file to the root directory of your sdcard, open up a terminal session and run tar -xvf MakeLoopROM-Android.tar.
2. Copy the rom and gapps and whatever other package you want to convert to the MakeLoopROM directory that was created during the unzipping above.
3a. In Linux, open up a terminal, cd to the MakeLoopROM directory and type sudo ./makelooprom (losetup requires root permissions).
3b. In windows, open up the cygwin terminal, cd to the MakeLoopROM directory and type ./makelooprom-cygwin
3c. On Android, open up a terminal session, type su and hit enter, type cd /sdcard/MakeLoopROM and hit enter and then sh mkrom and hit enter.
4. Follow the instructions, it should be easy enough to understand.
5. If you want to convert a gapps package and/or other packages you repeat step 3 but type ./makeloopgapps instead of ./makelooprom it'll work for any package you want to install into your loop files, root is not needed for this step.
5a. For android you type sh mkgapps to make gapps and other packages.
6. To be able to reboot back to NAND (the ROM on your phones internal storage) you need to copy the boot.img of your current ROM into the multiboot directory.
6a. The android version now copies the running boot.img if you answer yes when you get the question if you want it to so there is no need to copy it in another way.
After you're done converting your ROM and the packages you'll find all important stuff in the multiboot folder within the MakeLoopROM directory, just copy the whole folder to the root of your SD-card (if you are running on android this step is unneccessary, the script will copy the files for you). You'll find your image files under multiboot (if you created them) along with the "nameofyourrom"boot.img and boot"namofyourrom".sh that you'll need to boot into the ROM from another ROM and finally under loop-roms/[nameofyoursysimage] you'll find all your converted ROMs and packages, ready for installation.
Now you're ready to install the loop ROM and the loop packages, it installs like any other ROM/package via your recovery of choice (I recommend my CWM Touch 6.0.1.1, it's what this is tested on but it should work fine on any recovery).
To switch between ROMs you open up a terminal window, type su to get root permissions, cd to the multiboot folder (cd /sdcard/multiboot) and type sh bootnand.sh to switch to your internal ROM or boot"nameofrom".sh (bootcm-7.2.0-blade.sh if you installed cm-7.2.0-blade for example) for any of the loop roms. You can also install script manager and script manager widgets and make widgets for those scripts on your homescreen, that way rebooting to another rom is as easy as pressing the icon on your homescreen.
I'm sure there'll be a lot of questions about things i haven't thought of, but if you should fail or do something wrong then just hit ctrl-c and start over, the script cleans up and restarts the build.
Thanks to:
[email protected] for some ideas.
championswimmer for some scripts from his Kernel Kitchen.
Tilal for suggestions that helped fix running this script on the phone itself as well as the app he's making to make reboots between the different installs much easier and better.
[email protected] for being a very patient tester.
Files:
Linux version: MakeLoopROM-Linux.tar
MD5: 8907e2519276f4abcbb5bab0de168ae5
Windows Cygwin version: MakeLoopROM-Windows.zip
MD5: 096921e7a08eba98329bb7ec486068f0
Android version: MakeLoopROM-Android-V8.tar
MD5: f4ee326faf65bd032a95a1e2b4e8bc9f

25/10:
* Completely rewritten, it's now entirely menu driven with choices so you don't have to type filenames.
* Fixed faulty boot flashing
* Now copies a flashable zip of each loop ROM and NAND ROM boot images to /sdcard/multiboot for NAND and /sdcard/multiboot/loop-roms/[nameofyoursystemloopfile/[nameofyourrom]boot.zip so you can flash it via CWM if you need to.
* Includes a cross compiled version of bash for arm to fix a lot of scripting problems.
12/10:
* Streamlined, a LOT faster now.
* Possible fix for the random faulty boot.img flashing when switching between ROMs, need feedback on this.
* Removed unnecessary file creation (all of it runs within one loop file and questions (if you create the system and data images you won't get the question twice, it checks if your ROM is a JB rom without your interference).
* Added cleanup script, to use it run sh cleanup as su and follow the instructions.
* Lots of other bits and pieces that makes it safer and faster to use.
3/9:
* Fixed the Android version to work with CM7 roms [changed let=size to size=$(expr], thanks to Sulthekk for the heads up on that
* Added a failsafe to the Android version on creation of system loop file if it already exists and on giving the script a name for system and data image that doesn't exist. You get one retry, if you can't get it right after that... It is possible to multitask on android, just open a file manager if you forgot the name of the system or data image.
* Fixed the Linux and Windows versions to work with JellyBean ROMs, thanks to jpeg729 for the heads up on that
* Change the file names to reflect which version is which
1/9:
* Finally fixed the problems with no permissions running the script on some ROMs.
1/9:
* Added the choice to copy your currently running roms boot.img to your multiboot automatically, no user interaction needed for the process.
31/8:
* Changed the android version to a tar to keep file permissions intact.
* Fixed it up so it runs on CM-10 and PA as well as all other roms (i hope).
30/8:
* Release of the Android version, now runs completely on your phone.
28/8:
* Changed the Linux version to tar format to ensure that permissions are correctly set.
* Fixed the Cygwin version so it can make the data and system image files, they will be formatted on install and if it's a new installation you have to choose y to format the data image file or it will not have a filesystem.
* Changed a few misspellings in user interaction texts and tried to make it easier to understand.

Woah. Cwm and Multiboot in a week's time?
When you getting your RD status?
Good work man
Sent from my Ouya

QuantumFoam said:
Woah. Cwm and Multiboot in a week's time?
When you getting your RD status?
Good work man
Sent from my Ouya
Click to expand...
Click to collapse
I've got one third project that i'm about to wrap up and after that i'll just do incremental updates on those three while devoting my time to kernel development which is sorely needed.

Found a util for windows called winDD, i'll check it out and include it in the next version if it's of any use. That will fix the problem with not being able to create the loop files on windows.
I've built makebootfs and makebootimg for android and will include them along with a script that works on android in the next release.
I'll make the next release a tar version along with a zip version for windows users, this is to preserve file permissions.
Any other suggestions are most welcome.

After a lot of issues i finally got the Android version ready, i've tested it and it works fine on my phone, both the makelooprom-android and the makeloopgapps.
I had to cross compile perl and the mkbootfs and mkbootimg files to run on armv6l which took a while because i kept getting errors, both are included with the script.
Then there was a problem with running split-bootimg.pl on the sdcard, fat32 doesn't support symbolic links so i had to make three different loopfiles within the script to use for bootimg-contents ramdisk-contents and output.
Anyway, now it runs just fine, try it out.

New version up and running.

Only for zte blade ?
Sent from my B15Q using XDA Free mobile app

Related

im confused an lost how do you do this

so im new to putttin this stuff on my phone i need step by step help putting android on a windows att htc tilt. and where is the root file i cant find it on the sim, how do u do it?
If you have not learned to use Google then you first step is to research that and then try to research root. I believe this is what you are looking for. Read the entire thing first and then go forward.
http://forum.xda-developers.com/wiki/HTC_Kaiser
how to start android
Currently, Android is booted from within Windows Mobile. It does not run INSIDE Windows Mobile nor is it emulated! An application named HaRET is used as a bootloader to REBOOT the device into Android. Currently, it is possible to store the Android files within the normal FAT32 partition of the SD card. For more advanced users, it is also possible to use a separate ext2 partition on the SD card.
The instructions are the same for all supported devices.
Download the latest build of android from Latest Builds
SDCard Install
Running Android from your SD card will leave Windows Mobile intact, allowing you to freely meratol experiment and use Android with the unique hoodia diet ability to switch back to Windows Mobile at any time by simply rebooting your device.
Using one FAT32 Partition on SD Card
Currently, the newest files can be phen375 review found on the latest builds page.
Installation on SDCard
Launching Android with an SD card will leave untouched Windows Mobile, which allows to experiment freely and to use Android with an hgh advanced supplement opportunity to return to Windows Mobile at any time by simply rebooting the device.
Single FAT32 partition on the SD Card
To run current Android images (basically since 2010 and newer):
Place the andboot folder from the latest basefiles on the root of your storage card. This should include
HaRET (haret.exe)
The latest Android kernel (zImage)
The latest initrd (initrd.gz)
A set of boot scripts (default*.txt) - Rename the version for your device to default.txt
Rename your prefered Android build to androidinstall.tar and place it in the andboot folder.
OPTIONAL: Setup Data to use e-mail, Internet, Market, etc.
Run HaRET and t
ap "Run".
On boot press D-Button once the text starts scrolling
"Install" the system. This means, two files system.img and data.img will be created in your andboot folder. This process slimming reviews should not touch your NAND or delete other files on your SD-card.
Select 1. Install System
Select yes to wipe & install the semenax system
Select yes to wipe & install the data
Back in the main menu, select 9. QuitNow Android should boot...
For more information, see the Boot Options page and have a look at the README-BASEFILES.txt file in the andboot folder.To run older Android images (basically since 2009 and earlier):
You can either place the following files on the root of your Storage Card or create a folder called android on your Storage Card and place the following files in there:
HaRET (haret.exe)
The latest teeth whitener reviews Android kernel (zImage)
The latest initrd (initrd.gz)
A boot script (default.txt)
Root filesystem (rootfs.img)
The Android OS files (system.img/system.sqsh) (Needs update: latest distributions do not include system.img/sqsh and instructions indicate to instead)
data.img is created automatically - there is no need for a data.gz file!
If you are upgrading from an older build, data.img files are capsiplex usually not compatible between releases, so it is highly recommended that you acne skin products delete your data.img file every time you change builds
Build configuration files (user.conf files)
Edit default.txt/startup.txt as appropriate for your device
For more information, see the Boot Options page.
OPTIONAL: Setup Data to use e-mail, Internet, Market, etc.
Run HaRET and tap "Run".
On boot press D-Button
Using separate ext2 partition (English)
There is a great how-to for creating the Ext2 partitions and installing to the Ext2 partitions to run the Android: You can place the following files in the root directory of your Phen375 memory card or create a folder called Android on the memory card and place the following files there:
Haret (haret.exe)
Latest Android kernel (zImage)
Last Initrd (initrd.gz)
Download the script (default.txt)
Root filesystem (rootfs.img)
Android OS files (system.img / system.sqsh) (needs update: recent distros do not slimming pills include system.img / sqsh and instructions specify the location androidinstall.tar in the bud, and)
data.img created automatically - no need for data . gz file!
If you are upgrading from an older build, data.img files are usually not compatible between versions, so it is recommended to delete the file etosilno data.img every time you change the version
Build configuration files (user. Conf files)
Change the default . txt / startup.txt as necessary for the device
For more information, see the proactol plus Options page is loaded.
OPTIONAL: Setup Data, to use e-mail, internet, market, etc.
Run Haret and click "Run"

[Guide][Devs] Dual Boot Android Roms

- Dual booting is the process through which you can switch between any two or more roms without the need of wiping data or making backups before flashing, all you need to do is switch between the roms, meanwhile all the apps you've installed remain intact in their specific rom.
Click to expand...
Click to collapse
Strictly put forth by Developers for Developers! If you are inexperienced with Android Development then proceed forward with extreme caution! As for the experienced, this will be easy for you.
***DISCLAMER***
I am not responsible for bricked devices, dead SD cards, thermonuclear war, or you getting fired because the alarm app failed. YOU are choosing to make these modifications!
Click to expand...
Click to collapse
As always, do anything at your own risk. The above warning/disclaimer is only there because unfortuantely there will be someone who messes this up. The following guide will be conducted straight from the phone so if you are more comfortable using a computer then you will need to adapt this guide to your prefered surroundings. Please insure you have multiple ways to go about restoring your device in case you failed to follow the instructions or misunderstood something within the instructions - A Nandroid Backup, and/or RUU, and/or a ROM fitted for your specific device which you can apply via adb sideload.
Credit goes to @dreccon for bringing this to my attention with a more clear understanding over at his thread,
[GUIDELINES]Dual-Boot on (theoretically) any Android device. He was very helpful to opening my mind and thus putting up this thread. This thread is initially based around working with K2 Variant devices, but I am also aware that this will work on many other devices too.
The following numbers I will be using for partitioning the SD Card is based on maximum used space from a Stock Rom of my own K2_CL device using 4.1.2 Jelly Bean! These numbers are not to be taken literally, so USE COMMON SENSE, and insure you know the sizes for your System, Data, and Cache Partitions!
To determine the proper sizes of your partitions you can use the apk called, Partition Table, mentioned for requirements below. That APK is literally self explanatory so I will not be going over it. You will use this APK to determine the size of each partition and its current format. Do this and take note of them.
The Secondary Rom should be equal to or greater than the Primary Rom OS.
Requirements:
Device SPECIFIC boot.img and custom recovery.img
A text editor of the sorts - I use Quoda Code Editor
A Class 6 or better SDCard (I am talking about the external)
Partition Table from the Play Store
Working roms for your device
A compression tool (I use ZArchiver from the Play Store)
AParted (SD Card Partition) from the Play Store
Steps:
A. PARTITIONING YOUR SD CARD:
Plug your memory card (SD Card) in to your computer using either a card reader or by plugging your device in via usb, and copy everything from it over to your PC as we are going to partition your SD Card (which means it WILL be wiped out). Be sure to unmount your device from your pc if plugged in via usb or any other known method.
Unmount your SD Card on your device by going to, settings > storage > unmount sdcard,on your phone and then proceed to open up the apk, AParted.
Grant root access when prompted. Decline the "Agreement" because it will just try to install junk. Tap configuration, then tap the drop box under Detected devices. You should see mmcblk0, mmcblk1, and usbdisk. If you don't have both "mmcblk0", & "mmcblk1", then stop here, because either something is wrong on your end or this guide isnt for you. If you do, then select mmcblk1 from the list, tap Save, then OK. Tap TOOLS, you should now see parts 1 through 4. "Part: 1" should say fat32, and say the size in MB of your external SD card. If it does, then tap the checkbox next to "Part: 1", next tap the drop box that says Create, select Delete and tap apply. Once done, all parts should say empty. We're going to create 4 partitions. The first partition is going to be the standard external sd partition that will show up in both roms. Tap Create on the top, tap "+", tap the box with "0MB" in it, set it to the size you want the card to be, keeping in mind, that we need space for the second ROMs' partitions. Repeat these steps for System, Data, and Cache as seen below and once completed you will tap the menu button, and tap Apply changes, when done we are finished with the partition setup.
Partition it as followed:
First Partition-FAT32 (total memory card size - I recommend at least 20mb or more depending upon the actual size of your SD Card as a whole) <----- SD CARD
This is the space you will see as your memory card (external sd) in both of your roms (Primary and Secondary).
Second Partition-EXT4 (1339mb) <------ SYSTEM
This will be the System Partition of your Secondary Rom
Third Partition-EXT4 (1165mb) <----- DATA
This is Data Partition of your Secondary Rom, apps will go here
Fourth Partition-EXT4 (220mb) <----- CACHE
You can reduce it a bit more if you want to.
B. PREPARING SECONDARY ROM'S ZIP:
Get the updater-script of the rom you want to dual boot and open it up using Quoda as mentioned in the requirements or with anything else similar to a text editor which won't disrupt the unix coding of that file when you save it later.
SEARCH FOR-mmcblk0p35 (may vary for different devices, look for "mount("ext4", "EMMC", "/dev/block/mmcblk0p35");" in the updater script in order to know what yours is)
Replace with-mmcblk1p2
Save it and move it back to its location in the rom zip (META-INF\com\google\android).
Note: if there is a data folder in the rom's zip then you also have to replace the data partition block with mmcblk1p3, like: mmcblk0p37-->mmcblk1p3
C. PREPARING SECONDARY ROM'S BOOT.IMG:
Unpack the boot.img of the rom you want to dual boot using the proper unpacking and packing binaries. This can be done using your PC and/or phone. There is also the dsixda Kitchen via Windows using Cygwin and/or Linux. However, my guide will be based on doing this directly from my phone so for those who qualify may use this thread - Unpack, Edit, Repack Boot.img/Recovery.img. Otherwise, you will need to approach this differently.
You will need to go through all files which are feasible to view and read within the ramdisk of your boot.img.
Then find and replace:
Find-[email protected]
Replace with-/dev/block/mmcblk1p2
Find-[email protected]
Replace with-/dev/block/mmcblk1p3
Find-[email protected]
Replace with-/dev/block/mmcblk1p4
Save all the files that have had these changes made to them and then repack the ramdisk with the kernel to your new dualboot.img.
D. PREPARING SECONDARY ROM'S RECOVERY (OPTIONAL IF YOU DON'T WANT TO CHANGE THE SECONDARY ROM AGAIN):
Unpack the recovery.img like you unpacked your boot.img and open '/etc/recovery.fstab'.
Edit from this (May vary with other devices):
Code:
# mount point fstype device [device2]
/boot emmc /dev/block/mmcblk0p20
/cache ext4 [COLOR="darkred"]/dev/block/mmcblk0p36[/COLOR]
/data ext4 [COLOR="darkred"]/dev/block/mmcblk0p37[/COLOR]
/devlog ext4 /dev/block/mmcblk0p25
/misc emmc /dev/block/mmcblk0p22
/int_sd vfat /dev/block/mmcblk0p38
/recovery emmc /dev/block/mmcblk0p21
/sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1
/system ext4 [COLOR="darkred"]/dev/block/mmcblk0p35[/COLOR]
to this
Code:
# mount point fstype device [device2]
/boot emmc /dev/block/mmcblk0p20
/cache ext4 [COLOR="red"]/dev/block/mmcblk1p4[/COLOR]
/data ext4 [COLOR="red"]/dev/block/mmcblk1p3[/COLOR]
/devlog ext4 /dev/block/mmcblk0p25
/misc emmc /dev/block/mmcblk0p22
/int_sd vfat /dev/block/mmcblk0p38
/recovery emmc /dev/block/mmcblk0p21
/sdcard vfat /dev/block/mmcblk1p1 /dev/block/mmcblk1
/system ext4 [COLOR="red"]/dev/block/mmcblk1p2[/COLOR]
Save the file and repack the modified ramdisk with the kernel as dualrecovery.img.
E. MAKING THE UPDATE.ZIP FOR YOUR BOOT.IMG:
By now, you should have your edited boot.img (dualboot.img) and your edited updater-script. Just place both of them within the Secondary rom zip and you are now good to go to flash and/or share to others (but you better test it prior to sharing it!).
F. FLASHING/SWITCHING ROMS:
Just reboot to your recovery and flash the Secondary rom and after that flash your dualboot.img, unless you have already added it to the rom zip then you wont be required to flash the dualboot.img unless you are S-On.
To Switch between Roms just reboot to your recovery and flash your Boot for primary rom and DualBoot for secondary rom.
NOTE: you can literally flash just your stock boot.img and your primary stock rom will appear as if nothing ever happened.
Sent from my C525c using Tapatalk
Quick question. While I appreciate the tutorial greatly... wouldnt it be safer to use a recovery like SafeStrap?
What would the benefits be of using thia method over SS?
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
This is currently built with the K2 variant devices kept in mind. I will not guarantee anyone else who does not own a K2 variant that this will work. If you do not own a K2 variant and this does work, please, comment on this thread to let myself and other viewers know. Please specify your device and Rom. However, if you read my first post and everything you saw is fitting to your device and roms, then it is VERY LIKELY that this WILL work for you - Thanks.
To automatically generate your boot.img and/or rom zip to be 'dual bootable' you must download the DualBoot_v1.0 zip at the end of this post and extract it to the root of your internal sdcard. This will save you the hassle of manually unpacking, editing, and repacking the boot.img and as well as extracting, editing, and pushing back the updater-script originally from your rom zip. This process is really fast at accomplishing its goals while doing all the work for you .
The ZipEditor.sh will use my three binaries to edit your boot.img and while doing so, it will create a temporary repack.sh file to allow it to be properly rebuilt again. It will also create a backup of your original boot.img which will be named boot1.img. The dual boot.img will be named boot2.img.
This script is literally built around my three executable binaries - unmkbootimg, mkbootfs, and mkbootimg.
Of course, in order to use the scripts, you need to have had partitioned your SD card the way I described in the first post.
Initial Setup
First of all download the zip at the end of this post, unzip it and copy the DualBoot folder to the root of your SD card.
Install Script Manager from Play Store
How to use
A. ZipEditor.sh
Download the ROM you want to install and copy the zip into /sdcard/DualBoot/OriginalZIPs
Also download a suitable GAPPS.zip and copy it to the same directory (if this applies to you)
If you need to convert additional zips, the tool is designed to process as many as it finds in this directory
Open Script Manager, browse to /sdcard/DualBoot and tap on ZipEditor.sh
In the next screen, select the first two icons on top (Favorite and SU) and then select, Run.
The tool will give you some info about your device. Check them and if they are not right, then kill the script. If they are correct, press Enter to continue. The Editor will process the zips one by one. Everytime a zip is completed, it will prompt you to press Enter.
When all zips are processed you may reboot to recovery, make a backup of your current ROM and flash them.
When you reboot, your secondary ROM will load.
B. SwitchROM.sh
The name is self-explanatory. This tool can only function if it finds the files boot1.img and boot2.img inside the /sdcard/DualBoot/img folder.
These files will be automatically generated when you convert a ROM zip in the ZipEditor. Alternatively, if you know what you are doing, you can create and put them there yourself.
Tap it in Script Manager and again select the first two icons (Favorite and SU) and Run. It will automatically detect the current ROM, flash the boot.img of the other one and prompt you to reboot. Use your Power-Menu and reboot your device. Your device will now boot to the other ROM.
So, for now, you can automatically convert zips for installation to the external partitions with ZipEditor and you can switch between your two ROMs using SwitchROM. You will notice that your normal recovery cannot backup, restore, factory-reset or wipe your secondary ROM. Therefore, @dreccon is currently working on his next project to upload another script that will function as a full fledged Recovery for the secondary ROM, so stay tuned... Meanwhile, you will be required to edit your custom recovery image manually as described in the first post. This will allow you to flash to your secondary rom. For example, the ability to flash and root your secondary rom if it happens to not be rooted.
Click to expand...
Click to collapse
Credits for the ZipEditor.sh and SwitchROM.sh goes to @dreccon
Credits for the executable binaries goes to @Modding.MyMind - That's me
kevp75 said:
Quick question. While I appreciate the tutorial greatly... wouldnt it be safer to use a recovery like SafeStrap?
What would the benefits be of using thia method over SS?
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
Click to expand...
Click to collapse
Simple, using your sd card prevents hard bricks and or changes to your actual partitions. This prevents the user from screwing up their device, while also, this prevents malicious roms that have been improperly built to be prevented from destroying the users devices which is really helpful for those who are flashaholics and messing around with nightlies. In addition, when all is said and done, all they need to do is put back their primary Rom boot.img and they will have back their primary (or stock) Rom again as if nothing ever happened.
Buying an sd card are a dime a dozen (cell phones are not)
Sent from my C525c using Tapatalk
Oh... I dont think its a bad idea... but the could be done by creating multipe rom slots with SafeStrap.
I'm really just wondering what the benefit would be chooaing this route over another.
I for one think its a great tutorial and is definately a handy way to do it... not so keen on the sd card usage tho... just due to varying speed issues and googles words on write issues to it...
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
kevp75 said:
Oh... I dont think its a bad idea... but the could be done by creating multipe rom slots with SafeStrap.
I'm really just wondering what the benefit would be chooaing this route over another.
I for one think its a great tutorial and is definately a handy way to do it... not so keen on the sd card usage tho... just due to varying speed issues and googles words on write issues to it...
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
Click to expand...
Click to collapse
Aren't any issues. You are formating the sdcard to the same format as your system, data, and cache partitions. That would be ext4. With that said, I have done this on a 2gig sdcard using a deodex Rom and it ran faster and smoother than from the actual device itself. Even the first boot time of the deodex Rom was cut down dramatically.
Sent from my C525c using Tapatalk
NICE. Gotta be a class 10 card and the ext4 filesystem.
I would imagine with a slower card it would slow down... tho.
Very cool and great info.... thanks bud!
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
kevp75 said:
NICE. Gotta be a class 10 card and the ext4 filesystem.
I would imagine with a slower card it would slow down... tho.
Very cool and great info.... thanks bud!
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
Click to expand...
Click to collapse
Over time it may slow down some, but that would only be due to its available memory filling up which you can only imagine with a 2gig to have but only so much available space when you format it. Now, if you have like a 16 or 32 gig or something close to it, then you would be set . You could even go as far as using any extra space as a swap for more ram .
Sent from my C525c using Tapatalk
kevp75 said:
Oh... I dont think its a bad idea... but the could be done by creating multipe rom slots with SafeStrap.
Click to expand...
Click to collapse
I also failed to mention, that if you use some general common sense you can use the guidelines provided in this thread, and create additional space on the sdcard for more roms
So, instead of dual booting, you could technically have three, four, or even 5 depending on the sdcard and what your device can handle. Not to mention, it doesn't take up space on your device. It is just a matter of swapping out your sdcard which can be handy.
Sent from my C525c using Tapatalk
awesome... i'm going to bookmark this so when i can get a spare device I can give it a whirl =)
hopefully my daughter gets sick of her cracked glass s3 soon and i'll be able to do this on that HA!
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
kevp75 said:
awesome... i'm going to bookmark this so when i can get a spare device I can give it a whirl =)
hopefully my daughter gets sick of her cracked glass s3 soon and i'll be able to do this on that HA!
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
Click to expand...
Click to collapse
Sounds good, and remember to not flash anything to your secondary Rom with your custom recovery. It must be done with your dualrecovery. This is only optional for those who plan to keep their secondary Rom.
Sent from my C525c using Tapatalk
gotcha. Thanks for this.
Posted from my I337 NB1 Dark Venom 3 SS version --- 20G Free Cloud --- https://copy.com?r=vtiraF
Nicely written guide. Well done!
One alternative to constantly flashing the boot.img is to flash the secondary one into the recovery partition and then install bootstrap recoveries to both systems. This way, each ROM would have its own recovery and you would switch ROMs by key combination at bootup.
dreccon said:
Nicely written guide. Well done!
One alternative to constantly flashing the boot.img is to flash the secondary one into the recovery partition and then install bootstrap recoveries to both systems. This way, each ROM would have its own recovery and you would switch ROMs by key combination at bootup.
Click to expand...
Click to collapse
Would do this, but as my knowledge goes, we (meaning our K2 variants) currently do not have bootstrap support at this time, but if you know how to help in that matter, please pm me
Sent from my C525c using Tapatalk
Modding.MyMind said:
Would do this, but as my knowledge goes, we (meaning our K2 variants) currently do not have bootstrap support at this time, but if you know how to help in that matter, please pm me
Sent from my C525c using Tapatalk
Click to expand...
Click to collapse
I haven't tried it. It's just an idea but I'm sure it works. As for building a bootstrap recovery, no I don't know how it's done. I was hoping you already had one.
Sent from the 3rd dimension!
dreccon said:
I haven't tried it. It's just an idea but I'm sure it works. As for building a bootstrap recovery, no I don't know how it's done. I was hoping you already had one.
Sent from the 3rd dimension!
Click to expand...
Click to collapse
I'm confident it would work. I may need to work on bringing it over to us. Will see if I can find time for that though.
Hey guys, a script is in the mix for automating all of what I described within the OP. It will save you the trouble of editing the boot.img, updater-script, and so forth. Some changes need to be made, but I cannot take credit for this. It all goes to dreccon. He is the one writing it out, and I am testing it to insure its integrity. When it is ready, I will be posting it in the third post giving full detailed instructions on how to set it up and use it.
Edit: However, you will still be responsible for formatting the sdcard yourself.
Sent from my C525c using Tapatalk
Third post has been updated. You can now use the available attachment in the third post to automatically generate your dual Rom/dual boot.img. So for those who read my guide in the first post that are scratching their heads... You don't need to anymore lol. All that is required from you is to format your sdcard.
Sent from my C525c using Tapatalk
Hey guys, I will be reconstructing the instructions for post three. Nothing to be concerned about for any of you reading this. Just to keep in accordance with a simple request out of respect and to hold true with the XDA rules.
-- Happy Hunting!!
Sent from my C525c using Tapatalk
Modding.MyMind said:
This is currently built with the K2 variant devices kept in mind. I will not guarantee anyone else who does not own a K2 variant that this will work. If you do not own a K2 variant and this does work, please, comment on this thread to let myself and other viewers know. Please specify your device and Rom. However, if you read my first post and everything you saw is fitting to your device and roms, then it is VERY LIKELY that this WILL work for you - Thanks.
To automatically generate your boot.img and/or rom zip to be 'dual bootable' you must download the DualBoot_v1.0 zip at the end of this post and extract it to the root of your internal sdcard. This will save you the hassle of manually unpacking, editing, and repacking the boot.img and as well as extracting, editing, and pushing back the updater-script originally from your rom zip. This process is really fast at accomplishing its goals while doing all the work for you .
The ZipEditor.sh will use my three binaries to edit your boot.img and while doing so, it will create a temporary repack.sh file to allow it to be properly rebuilt again. It will also create a backup of your original boot.img which will be named boot1.img. The dual boot.img will be named boot2.img.
This script is literally built around my three executable binaries - unmkbootimg, mkbootfs, and mkbootimg.
Of course, in order to use the scripts, you need to have had partitioned your SD card the way I described in the first post.
Initial Setup
First of all download the zip at the end of this post, unzip it and copy the DualBoot folder to the root of your SD card.
Install Script Manager from Play Store
How to use
A. ZipEditor.sh
Download the ROM you want to install and copy the zip into /sdcard/DualBoot/OriginalZIPs
Also download a suitable GAPPS.zip and copy it to the same directory (if this applies to you)
If you need to convert additional zips, the tool is designed to process as many as it finds in this directory
Open Script Manager, browse to /sdcard/DualBoot and tap on ZipEditor.sh
In the next screen, select the first two icons on top (Favorite and SU) and then select, Run.
The tool will give you some info about your device. Check them and if they are not right, then kill the script. If they are correct, press Enter to continue. The Editor will process the zips one by one. Everytime a zip is completed, it will prompt you to press Enter.
When all zips are processed you may reboot to recovery, make a backup of your current ROM and flash them.
When you reboot, your secondary ROM will load.
B. SwitchROM.sh
The name is self-explanatory. This tool can only function if it finds the files boot1.img and boot2.img inside the /sdcard/DualBoot/img folder.
These files will be automatically generated when you convert a ROM zip in the ZipEditor. Alternatively, if you know what you are doing, you can create and put them there yourself.
Tap it in Script Manager and again select the first two icons (Favorite and SU) and Run. It will automatically detect the current ROM, flash the boot.img of the other one and prompt you to reboot. Use your Power-Menu and reboot your device. Your device will now boot to the other ROM.
Credits for the ZipEditor.sh and SwitchROM.sh goes to @dreccon
Credits for the executable binaries goes to @Modding.MyMind - That's me
Click to expand...
Click to collapse
dang it... now i gotta get me a 64G card
Rockin it from my Rockin Smartly Deadly Venom NE5 S4 (much thanks to: @Venom0642 @ted77usa @rebel1699 @iB4STiD ~ 20GB free cloud https://copy.com?r=vtiraF

OTA update bootloop fix [S-ON] [BU] [Stock Rooted ROM]

Hi, I found a way to fix this bootloop which happens after you flash the latest ota update if you have unlocked and rooted your stock rom.
I own a HTC E8 China Unicom [M8Sw - dual sim], but I think it will work on other variants.
It is the SU binary/files which are preventing the phone from updating correctly.
You can also restore a clean unrooted TWRP backup and do the OTA update.. it will work just fine.
This tutorial is for those who don't want to lose their app data and modifications.
To be able to update... you need to fully unroot the phone before. Well, this was previously not possible due to system write protection.
(There are also other methods of unrooting. (deleting the SU files manually with the file manager of TWRP recovery) This doesn't work, I have tried it myself..often cause bootloops.)
But now we have a custom recovery mod which enables us to write to the system partition and thus can fully unroot with SuperSU app itself.
Requirements:
-some expertise with adb/flashing/twrp recovery management will be needed.
-stock firmware.zip, inside the OTA zip file, where you will find you stock recovery,boot image, etc
-Stock ROM, rooted with no modified existing system files
-TWRP Recovery from @Captain_Throwback works fine. I used the 2.8.6.0 one. http://forum.xda-developers.com/one-e8/orig-development/recovery-twrp-touch-recovery-t3060188
-untouched Stock Kernel Modules (IMPORTANT)
-SchKernel Extra 3.3, to gain write permission to /system http://forum.xda-developers.com/one-e8/general/schkernel-extra-3-3-t3200090
[UPDATE: SchKernel Extra has been updated to 3.5 and the old one is not available for download on the other thread. You can find attached at the bottom of this section ver3.3 which I had used. Please don't use ver3.5 as a user has reported having bootloop with that.)
-Battery +80 charge recommended...the process gonna demand a lot of power.
-Patience... loads of it....
Disclaimer: I am not responsible if you brick or damage you phone!!
Before you flash anything, be sure to have a working twrp full backup of you phone! In case anything goes wrong.
STEPS:
1. Copy the untouched kernel 'modules' folder [found in system/lib/ in your phone] to another location ( for e.g. to your internal phone memory), you're gonna need it later.
2. Flash the twrp recovery if you haven't already and boot into TWRP recovery.
3. flash SchKernel Extra 3.3 kernel mod. It will launch the aroma installer. There will be options as overclocking/underclocking etc..
I left everything on STOCK option, disabled Swipe2sleep, unselected the everything in the optional addition page. Then went to install it.
4. Reboot, and open SuperSU app, go into setting, tap the FULL UNROOT option, this might take a while. The first time, when the unrooting notice shows and it seems that the app is not doing anything, you might be required to exit the app by pressing home button. Then open the app again and redo FULL UNROOT option. If you exit the app and when re-opening it, the "unrooting notice" is still there, then it means it is working. This might take a bit of trial and error.
5. Ultimately, SuperSU app will close. Then you will need to reboot. You will see that SuperSU is gone and that you have no root access.
6. Now, turn it off again to go to fastboot. Connect to PC and flash the stock boot.img via adb to restore the stock kernel.
8. Then, in twrp recovery, mount /system partition and got to advanced >> file manager..
9. Now browse to /system/lib/ and delete the 'modules folder'.
This is because the SchKernel Extra 3.3 kernel mod flashed previously has modified your kernel modules and when you will try to update the OTA, the stock recovery will report that the kernel modules (xxxxx.ko) has be modified and it will stop the OTA update process.
10. Remember the previous untouched stock 'modules' folder you copied previously, now move it to /system/lib/HERE , to replace the deleted folder.
[DO STEP 9 BEFORE - Don't try to overwrite the folder, it won't be possible. It said operation failed for me. ]
Optional: You might also want to delete su.d folder in \system and init.d folder in system\etc
these files were for the custom kernel and won't be needed anymore.
11. Reboot into fastboot mode, connect to PC (if not already), flash stock recovery.
12. Now, you're good to flash the OTA updates. :good:
-Download it, if not already done.
If ever you have downloaded from PC and copied it to phone, and for whatever reason the phone is not detecting the zip file and asking for install.
Just move it to you exeternal SD card and rename it to "ptt.zip" , go into stock recovery and go down the list to "apply update from SD card"
and it should flash the zip file. When done, select the reboot option and it will say reboot to flash firmware.zip and the will boot. :fingers-crossed:
When booting it will take some time (3 to 8 mins), and then go to the "Android is updating - optimizing apps" screen. This might take a lot of time if you have a lot of apps installed. The phone might get really hot during this process.
When the OS finally boot completely there will be an "HTC" screen and an exclamatin mark in the notification bar. NO WORRIES, it is the just the update working. It will go away when the update is fully processed.
After OTA update is done, you can make a twrp backup of the unrooted system, so that you can restore it for future OTA updates.
If some steps are confusing, feel free to ask for any clarification
Hope I helped you. Don't forget to hit thanks
problem
hi after i flashed SchKernel Extra 3.3 my phone just turned off and won't turn on. what should i do?
neekless said:
hi after i flashed SchKernel Extra 3.3 my phone just turned off and won't turn on. what should i do?
Click to expand...
Click to collapse
how did you flash it exactly?
Did you flash it thought TWRP recovery?
also...what variant of HTC e8 are you using?
Thank you for this guide. :good:
For the newbies, here are exact instructions for each step. TWRP is required; presumably you have this because you've rooted your phone. (If you haven't rooted your phone, what are you doing here?)
Note that rebooting to TWRP can be accomplished in several ways:
Long-press the power button; when prompted choose Reboot. When the screen goes black, press and hold the Volume Down key. This will take you to hboot; from there choose Recovery.
Enable developer mode from settings, plug in to a computer, and issue the command adb reboot recovery.
Also note that it is prudent to do a full TWRP backup to external storage (microSD, USB OTG) before anything else, so you have a good recovery point if things go wrong.
To copy the system/lib/modules directory, you can use a root-enabled file explorer or TWRP. To do it in TWRP:
Reboot to TWRP.
In TWRP, select Mount. Make sure that system is checked.
Back to the main TWRP menu, select Advanced.
In the advanced menu, select File Manager. Then navigate to /system/lib/modules.
Tap on Select, then Copy Folder. Navigate to a new location - I used /sdcard/Backup - and tap Select again. Don't use your external SD or USB-OTG, they may not preserve permissions correctly.
To flash the SchKernel Extra, copy the ZIP file to your device, reboot into TWRP, and select Install. From there, navigate to where you copied the ZIP file and select it; then follow the prompts as sanijsnj specified.
Removing SuperSU works exactly as described. Don't forget to reboot at the end (although it may not be necessary).
To flash the stock boot, in a cmd window where you have the Android SDK, typically in the sub-folder platform-tools enter: fastboot flash boot boot.img (boot.img from the OTA ZIP).
To delete and restore /system/lib/modules, follow the steps above, starting of course from your saved 'modules' directory and copying to /system/lib.
To flash the stock recovery, again in the cmd window enter: fastboot flash recovery recovery.img (recovery.img from the OTA ZIP).

Roms for GT-I8160P version guide

Hi people, here is a short instruction if you have a P or L version of the I8160 and want to update this (great) old phone. credits to xdas-e
for a while i thought that roms didnt work on the P version, because when installing roms i got the error that the rom was only for I8160, not I8160P. so yeah it is possible, maybe this is common knowledge, but i couldnt find out how before i found this information.
I have not tested this exhaustively but i believe they all should work, because i believe the only difference from the P version is that it has an NFC module.
]------- modify the rom for P version:
1.- Get the custom ROM.
2.- Get the /system/lib/tee folder contents from your GT-I8160P JB installation (from stock rom). You may need root access, although in my case I could simply move trough the hidden directories and copy the folder to my sd card.
3.- Swap the /system/lib/tee folder, and put what you got from step 2, into the zip file of step 1, same place, same everything. You may very well dispose the original /system/lib/tee folder in the zip file.
4.- Change /system/build.prop and introduce a P in every GT-I8160 entry (from GT-I8160 to GT-I8160P).
5.- (tricky one) look for the updater script file within the custom ROM zip file, and delete (or add a P) the first complete entry of the assert command (you shall see some GT-I8160 there). in my case it was located under META-INF\com\google\android\.
------- from here you have successfully modified the rom for the P version, these steps just show the installation:
6.- If you dont already have CWM, get yourself one (I used this one [JB] CWM Recovery 6).
7.- Put both zip files into your sd card; get a copy also of gapps (google apps, play store etc) for the android version of the rom.
8.- Back up all your data.
9.- Swicht off your phone and restart in recovery mode (up volume, home and power buttons pressed simultaneously).
10.- Load from the external sd card the CWM zip file.
11.- Make a full ROM backup to restore if things go wrong. Wipe data/factory reset; wipe cache partition; wipe dalvik cache (under advance options), format /system if needed (see rom instructions).
12.- Install from external sd card: a) custom CM rom; and b) gapps if you're for it.
13.- Restart.
14.- You shall be done!!! (first boot takes a long time)
good luck! my phone was crap with stock and now it works great, so basically it saved me from buying a new phone.. a big thanks to all the rom developers for this device .

Best Method to Re-flash & Re-root Plus Have Internal Storage Working

Hey Guys -
I have had my A9 for about 2 months and love it. When I first purchased it, I rooted it using the method pinned to this forum which seemed to work well. Soon afterwards, I found out that when I inserted and tried to format an SD card as "internal", it wouldn't work and result in it showing as "corrupted." I soon found out that this seemed to be due to the root replacing the original boot.img which messes with encryption. Since the root was posted, SuperSU has been updated and that step has changed supposedly.
Now that I have some time, I want to fix this issue. Before doing so, I've read through many posts and think I have a plan. I wanted to post the steps I need to follow as I understood them to make sure my plan is correct and will result in not only being able to format an SD internally and be rooted, but also a working phone Below are the specs of my phone, the steps I think it may take to resolve, and a few questions I have after reading through numerous posts. Any help is appreciated!
Phone Specs
Some as currently listed in Settings
- HTC One A9
- AT&T USA
- Rooted / s-off
- Android 6.0 / Sense 7.0g
Software Number: 1.10.502.3
Kernel: 3.10.73-perf-g28d66e0
Baseband: [email protected]_29.05_F
Build: 1.10.502.3 CL635081 release keys
Android Security Patch Level: 2015-10-01
Steps to Fix
1. Backup any data desired (I have a nightly Titanium backup)
2. Download RUU for same version (1.10.502.3) from http://forum.xda-developers.com/one-a9/general/wip-ruu-htc-one-a9-t3240344
Should I use newer version or are those for different carriers?
3. Apply RUU (via embedded EXE or try to extract and apply using adb/fastboot)
4. Once phone is restored, make a backup of boot.img from phone just in case it's needed later
5. Install TWRP via adb/fastboot
6. Install SuperSU via TWRP
At this point (if I can make it to this point), test and see if the phone's rooted and I can format the SD internally. If so, great. If not, continue with the following steps...
7. Download & flash modded boot.img from A9 Root post
8. Install TWRP via adb / fastboot
9. Install SuperSU via TWRP
10. Flash original boot.img backed up in step #4 to my phone (since modded one was only needed initially to install SuperSU) So that encryption keys match and I may successfully format sd cards for internal use
My Questions
1. Are the steps above basically the process i need to perform or is there a better / easier way? I don't know if I could flash a common boot.img from an RUU or if it needs to be flashed to phone first for encryption purposes. Even if I can, I've tried to extract it from ruu.zip before and could not
2. Should I use an RUU for a newer version (over 1.10.502.3) or are those for different carriers and not work with my AT&T phone?
3. Does it make a difference if I install the RUU via embedded EXE or extract and apply using adb/fastboot?
4. What versions of TWRP & SuperSU should I use?
Any additional suggestions would be appreciated - I just want to get this resolved once and for all! - Thanks!
bzowk said:
Hey Guys -
I have had my A9 for about 2 months and love it. When I first purchased it, I rooted it using the method pinned to this forum which seemed to work well. Soon afterwards, I found out that when I inserted and tried to format an SD card as "internal", it wouldn't work and result in it showing as "corrupted." I soon found out that this seemed to be due to the root replacing the original boot.img which messes with encryption. Since the root was posted, SuperSU has been updated and that step has changed supposedly.
Now that I have some time, I want to fix this issue. Before doing so, I've read through many posts and think I have a plan. I wanted to post the steps I need to follow as I understood them to make sure my plan is correct and will result in not only being able to format an SD internally and be rooted, but also a working phone Below are the specs of my phone, the steps I think it may take to resolve, and a few questions I have after reading through numerous posts. Any help is appreciated!
Phone Specs
Some as currently listed in Settings
- HTC One A9
- AT&T USA
- Rooted / s-off
- Android 6.0 / Sense 7.0g
Software Number: 1.10.502.3
Kernel: 3.10.73-perf-g28d66e0
Baseband: [email protected]_29.05_F
Build: 1.10.502.3 CL635081 release keys
Android Security Patch Level: 2015-10-01
Steps to Fix
1. Backup any data desired (I have a nightly Titanium backup)
2. Download RUU for same version (1.10.502.3) from http://forum.xda-developers.com/one-a9/general/wip-ruu-htc-one-a9-t3240344
Should I use newer version or are those for different carriers?
3. Apply RUU (via embedded EXE or try to extract and apply using adb/fastboot)
4. Once phone is restored, make a backup of boot.img from phone just in case it's needed later
5. Install TWRP via adb/fastboot
6. Install SuperSU via TWRP
At this point (if I can make it to this point), test and see if the phone's rooted and I can format the SD internally. If so, great. If not, continue with the following steps...
7. Download & flash modded boot.img from A9 Root post
8. Install TWRP via adb / fastboot
9. Install SuperSU via TWRP
10. Flash original boot.img backed up in step #4 to my phone (since modded one was only needed initially to install SuperSU) So that encryption keys match and I may successfully format sd cards for internal use
My Questions
1. Are the steps above basically the process i need to perform or is there a better / easier way? I don't know if I could flash a common boot.img from an RUU or if it needs to be flashed to phone first for encryption purposes. Even if I can, I've tried to extract it from ruu.zip before and could not
2. Should I use an RUU for a newer version (over 1.10.502.3) or are those for different carriers and not work with my AT&T phone?
3. Does it make a difference if I install the RUU via embedded EXE or extract and apply using adb/fastboot?
4. What versions of TWRP & SuperSU should I use?
Any additional suggestions would be appreciated - I just want to get this resolved once and for all! - Thanks!
Click to expand...
Click to collapse
First off, this isn't Development.
Secondly, I explained to you how to fix this in the very root thread you linked several times.
Thirdly, there's a newer, official RUU from HTC right on their ROM Downloads website. I'd start by installing that (though I also have a recovery-flashable version of that ROM in my Base ROM thread).
Fourthly, with access to an official RUU, and my ROM decrypt script, you have access to the stock boot.img (which is also in the firmware zip in my Base ROM thread), which you can use as your baseline for restoring the verity key to the ramdisk, thereby allowing you to use adopted storage without any issues. Note however that I was only able to use adopted storage with the "forceencrypt" flag enabled.
Fifthly, you can't just restore the stock boot image (at least not if you want to stay rooted). You can be both rooted and encrypted, but you have to first make sure SuperSU is flashed and set up prior to allowing the device to be encrypted again (adopted storage only works with an encrypted device, and then you won't be able to access your storage with TWRP).
OK, OK - sorry.... It had been a while since posting and honestly forgot about that thread - my fault.
I decided to start fresh so have already restored the phone to HTC's latest RUU (1.27.502.5 ATT) as I already had it downloaded. I've also flashed TWRP 2.8.8.1 to the phone, but am obviously prompted to enter a password when I try to enter recovery. Based off what I've read, the steps below seem to be what I need to do so that I may be rooted + still have encryption for internal sd formatting. Is it correct (or close to it)
Using an Ubuntu 14.04 x86 VM...
1. Download & extract your decrypt script to a temp folder in linux vm
2. In Windows, run same RUU I applied and copy out rom.zip from %temp%
3. Rename "rom.zip" to "rom_a9.zip"
4. Copy rom_a9.zip to the ""place_rom_zip_here" folder of your extracted script in the vm
5. Run ./decrypt-htc and wait for script to complete to get img files
On Phone (Currently has same RUU installed + TWRP but not rooted)
6. Root phone using original method of flashing modded boot.img, install SuperSU, and get rooted
7. Once done and rooted, flash boot.img I extracted using your script above to phone via adb
Once that's done, it should be rooted + have encryption thus allowing me to use internal sd card, right? Sorry to be such a bother - just want to get this fixed and done with
Thanks!
bzowk said:
OK, OK - sorry.... It had been a while since posting and honestly forgot about that thread - my fault.
I decided to start fresh so have already restored the phone to HTC's latest RUU (1.27.502.5 ATT) as I already had it downloaded. I've also flashed TWRP 2.8.8.1 to the phone, but am obviously prompted to enter a password when I try to enter recovery. Based off what I've read, the steps below seem to be what I need to do so that I may be rooted + still have encryption for internal sd formatting. Is it correct (or close to it)
Using an Ubuntu 14.04 x86 VM...
1. Download & extract your decrypt script to a temp folder in linux vm
2. In Windows, run same RUU I applied and copy out rom.zip from %temp%
3. Rename "rom.zip" to "rom_a9.zip"
4. Copy rom_a9.zip to the ""place_rom_zip_here" folder of your extracted script in the vm
5. Run ./decrypt-htc and wait for script to complete to get img files
On Phone (Currently has same RUU installed + TWRP but not rooted)
6. Root phone using original method of flashing modded boot.img, install SuperSU, and get rooted
7. Once done and rooted, flash boot.img I extracted using your script above to phone via adb
Once that's done, it should be rooted + have encryption thus allowing me to use internal sd card, right? Sorry to be such a bother - just want to get this fixed and done with
Thanks!
Click to expand...
Click to collapse
Re-read my post. If you flash the stock boot.img, you will no longer be rooted.
And as I said in the original thread, you need to pull the rooted boot.img and add the verity key from the stock one to it. Also you'll need to add the forceencrypt and verify flag back.
P.S. You also need to re-read the instructions in the decrypt thread. You don't have to rename anything anymore.
Good Afternoon -
OK - sorry to frustrate you, but I think I finally have it figured out. I started from scratch, re-read many posts, and took notes. I was a little confused on the last part so wanted to verify, please...
I've already unpacked the boot.img from the latest HTC A9 (AT&T) RUU and have the two folders. I restored the same RUU to my phone, flashed TWRP 2.8.8.1, backed up the boot.img, and unpacked it before realizing that I should have probably rooted it first.
Correct me if I'm wrong, but here's all I need to do to finish....
1. Download modified A9 boot.img from top of root thread
2. Flash modded boot.img using fastboot
3. Verify TWRP is still installed then use it to install SuperSU 2.67 (latest)
4. Back up boot partition just like I did before in TWRP
5. Unpack it on PC to create ramdisk and split_img folders
6. Copy verity_key from unpack of the actual RUU and overwrite one in rooted unpack
7. Edit the file fstab.qcom in the ramdisk folder of the rooted unpack in Notepad++ and add the "verify" flag after the wait flag on the fist uncommented line - save
8. Repack rooted boot.img
9. Flash phone with repacked boot.img using fastboot
10. Reboot & enjoy a rooted phone + encryption allowing sd internal formatting
Promise not to bug anymore if I can just get this resolved.
Thanks again for your assistance!
UPDATE
Hmm - was just prepping and went to download modded file from root thread's first post. Doesn't seem to have one that matches newest build of RUU I flashed - if I'm interpreting it correctly. Researching further, but if know of alternate method or another solution to get through steps 1 & 2 about (assuming they are correct), I'd appreciate it. Thanks
bzowk said:
Good Afternoon -
OK - sorry to frustrate you, but I think I finally have it figured out. I started from scratch, re-read many posts, and took notes. I was a little confused on the last part so wanted to verify, please...
I've already unpacked the boot.img from the latest HTC A9 (AT&T) RUU and have the two folders. I restored the same RUU to my phone, flashed TWRP 2.8.8.1, backed up the boot.img, and unpacked it before realizing that I should have probably rooted it first.
Correct me if I'm wrong, but here's all I need to do to finish....
1. Download modified A9 boot.img from top of root thread
2. Flash modded boot.img using fastboot
3. Verify TWRP is still installed then use it to install SuperSU 2.67 (latest)
4. Back up boot partition just like I did before in TWRP
5. Unpack it on PC to create ramdisk and split_img folders
6. Copy verity_key from unpack of the actual RUU and overwrite one in rooted unpack
7. Edit the file fstab.qcom in the ramdisk folder of the rooted unpack in Notepad++ and add the "verify" flag after the wait flag on the fist uncommented line - save
8. Repack rooted boot.img
9. Flash phone with repacked boot.img using fastboot
10. Reboot & enjoy a rooted phone + encryption allowing sd internal formatting
Promise not to bug anymore if I can just get this resolved.
Thanks again for your assistance!
UPDATE
Hmm - was just prepping and went to download modded file from root thread's first post. Doesn't seem to have one that matches newest build of RUU I flashed - if I'm interpreting it correctly. Researching further, but if know of alternate method or another solution to get through steps 1 & 2 about (assuming they are correct), I'd appreciate it. Thanks
Click to expand...
Click to collapse
You don't need anything from that root thread. Everything there is deprecated (which I've said several times).
If you already have the stock boot.img unpacked and ready to go, all you have to do is flash SuperSU, then back up the rooted boot.img that you now have on your device thanks to SuperSU. Unpack that boot.emmc.win and add the verity_key from the stock ramdisk and replace the fstab.qcom with the one from the stock ramdisk. Repack, flash to your device via fastboot or TWRP, and your device will encrypt on that first boot and you'll be good to go.
Just to make sure - you did a Format Data in TWRP prior to flashing SuperSU, correct?
Captain_Throwback said:
You don't need anything from that root thread. Everything there is deprecated (which I've said several times).
If you already have the stock boot.img unpacked and ready to go, all you have to do is flash SuperSU, then back up the rooted boot.img that you now have on your device thanks to SuperSU. Unpack that boot.emmc.win and add the verity_key from the stock ramdisk and replace the fstab.qcom with the one from the stock ramdisk. Repack, flash to your device via fastboot or TWRP, and your device will encrypt on that first boot and you'll be good to go.
Just to make sure - you did a Format Data in TWRP prior to flashing SuperSU, correct?
Click to expand...
Click to collapse
Thanks -
Well, that's the thing... One of the two unpacked boot.img I have currently is wrong. The two I have are:
- One unpacked boot.img extracted from latest RUU using your script in linux
- One unpacked boot.img backed up from unrooted phone which only had TWRP flashed
That was part of my question. I know that the 2nd unpacked boot.img above is worthless as the phone needed to be rooted prior to me backing it up. The question for me is how to flash superSU onto the phone (which currently has the same latest RUU + TWRP 2.8.8.1 installed) if I can only access TWRP is a read-only mode as I'm prompted for password upon booting to recovery. That's why I brought up the legacy root method as I don't know of an alternative... unless SuperSU doesn't require write permissions to whatever TWRP has locked down currently.
Once I can root it, backup it's boot, and unpack it; I just need to literally copy & overwrite the "verity_key" and "fstab.qcom" files (assuming the only difference is the fstab.qcom I'm overwriting doesn't have the verify flag), repack, then flash back to phone via fastboot, right?
Thanks for your patience!
bzowk said:
Thanks -
Well, that's the thing... One of the two unpacked boot.img I have currently is wrong. The two I have are:
- One unpacked boot.img extracted from latest RUU using your script in linux
- One unpacked boot.img backed up from unrooted phone which only had TWRP flashed
That was part of my question. I know that the 2nd unpacked boot.img above is worthless as the phone needed to be rooted prior to me backing it up. The question for me is how to flash superSU onto the phone (which currently has the same latest RUU + TWRP 2.8.8.1 installed) if I can only access TWRP is a read-only mode as I'm prompted for password upon booting to recovery. That's why I brought up the legacy root method as I don't know of an alternative... unless SuperSU doesn't require write permissions to whatever TWRP has locked down currently.
Once I can root it, backup it's boot, and unpack it; I just need to literally copy & overwrite the "verity_key" and "fstab.qcom" files (assuming the only difference is the fstab.qcom I'm overwriting doesn't have the verify flag), repack, then flash back to phone via fastboot, right?
Thanks for your patience!
Click to expand...
Click to collapse
Once you Format Data in TWRP and reboot recovery, you can flash SuperSU and you will be rooted. You just have to back up the boot.img after flashing SuperSU on the unencrypted device to re-enable verity so that adopted storage will work.
P.S. And no, the verify flag isn't the only difference. As I also said earlier (I'm constantly repeating myself), the device must be encrypted for Adopted Storage to work, so the forceencrypt flag from the stock fstab must also be present. That's why it's easier just to replace the whole file. The problem you have at the end of the day is that, while you'll be rooted and be able to use adopted storage in Android, you still won't be able to access said storage (or /data) in TWRP.
Captain_Throwback said:
Once you Format Data in TWRP and reboot recovery, you can flash SuperSU and you will be rooted. You just have to back up the boot.img after flashing SuperSU on the unencrypted device to re-enable verity so that adopted storage will work.
P.S. And no, the verify flag isn't the only difference. As I also said earlier (I'm constantly repeating myself), the device must be encrypted for Adopted Storage to work, so the forceencrypt flag from the stock fstab must also be present. That's why it's easier just to replace the whole file. The problem you have at the end of the day is that, while you'll be rooted and be able to use adopted storage in Android, you still won't be able to access said storage (or /data) in TWRP.
Click to expand...
Click to collapse
Great - Thanks!!
Just to make sure, below's my plan with a small question @ step #5. Does it get your stamp of approval?
Phone (A9) already had latest RUU restored (same RUU I ran against your script to pull boot.img from) and TWRP 2.8.8.1 flashed
1. Boot into TWRP & bypass initial screen prompting for password
2. Format Data
3. Reboot back into TWRP
4. Flash SuperSU 2.76 zip
5. Reboot to system then back to TWRP and backup boot partition? / Stay in TWRP and backup boot partition? / Reboot back into TWRP and backup boot partition?
6. Unpack backed up boot partition from phone
7. Copy "verity_key" & "fstab.qcom" files from ramdisk folder in unpacked RUU boot and paste into & overwrite same files in ramdisk folder of unpacked boot from rooted phone
8. Repack rooted phone boot (which includes both new files)
9. Flash newly packed boot.img to phone using fastboot
10. Enjoy
I really appreciate your help and patience with me!
bzowk said:
Great - Thanks!!
Just to make sure, below's my plan with a small question @ step #5. Does it get your stamp of approval?
Phone (A9) already had latest RUU restored (same RUU I ran against your script to pull boot.img from) and TWRP 2.8.8.1 flashed
1. Boot into TWRP & bypass initial screen prompting for password
2. Format Data
3. Reboot back into TWRP
Click to expand...
Click to collapse
Good so far . . .
bzowk said:
4. Flash SuperSU 2.76 zip
Click to expand...
Click to collapse
I'm sure this is just a typo, but that should be 2.67, not 76 (there is no 2.76).
bzowk said:
5. Reboot to system then back to TWRP and backup boot partition? / Stay in TWRP and backup boot partition? / Reboot back into TWRP and backup boot partition?
Click to expand...
Click to collapse
Bolded the correct one above (no need to leave TWRP as the necessary modifications have already been made).
bzowk said:
6. Unpack backed up boot partition from phone
7. Copy "verity_key" & "fstab.qcom" files from ramdisk folder in unpacked RUU boot and paste into & overwrite same files in ramdisk folder of unpacked boot from rooted phone
8. Repack rooted phone boot (which includes both new files)
Click to expand...
Click to collapse
Looks good . . .
bzowk said:
9. Flash newly packed boot.img to phone using fastboot
Click to expand...
Click to collapse
TWRP can also flash the new image, but fastboot is probably the most reliable way to do it.
bzowk said:
10. Enjoy
Click to expand...
Click to collapse
Hopefully . . . You'll likely get a reboot on the first boot (possible multiple reboots), as SuperSU needs a reboot to install the necessary files. Since your device will also encrypt on that initial boot, I'm not sure whether there will be a conflict or not.
bzowk said:
I really appreciate your help and patience with me!
Click to expand...
Click to collapse
Guess we'll see if it all works out . . .
Thanks!
I proceeded by formatting data, booting directly back intoTWRP, flashing SuperSU, backing up the boot partition, then mounting and copying it over to my PC. The boot.img size was 65,536kb - the same size as the one I unpacked from the RUU. Once unpacked, it was missing the verity_key file and the fstab.qcom file was different + missing the verify flag.
I replaced those two files, then ran repackimg.bat which created image-new.img which I renamed to boot.img. Interesting, though, that this file was only 45,890kb. If it's a repack, shouldn't it be the same or similar? Anyways, the phone was still in TWRP (hadn't booted to system since before the format data) so booted it into bootloader directly and tried flashing boot using my new 45mb boot.img.
If failed - but - my phone was only at 17% power. Don't know if that's why it failed or not so it's charging right now while still in the bootloader. Below is what was echoed when I tried flashing it:
Code:
c:\adb>fastboot flash boot boot.img
target reported max download size of 800000000 bytes
sending 'boot' (45890 KB)...
OKAY [ 3.488s]
writing 'boot'...
(bootloader) HOSD CL#656287
FAILED (remote: 4 RU_BATTERY_LOW please connect charger (17% < 30%))
finished. total time: 4.506s
The reason I didn't boot to system is that I thought that was when the encryption might take place. Going to wait until above 30% power then try flashing again. Powered down to charge, but plan to boot straight back into bootloader to flash. If you see anything that stands out or that I need to do otherwise, please let me know. Otherwise, I'll report back what the result was after getting above 30%.
Thanks again!
bzowk said:
Thanks!
I proceeded by formatting data, booting directly back intoTWRP, flashing SuperSU, backing up the boot partition, then mounting and copying it over to my PC. The boot.img size was 65,536kb - the same size as the one I unpacked from the RUU. Once unpacked, it was missing the verity_key file and the fstab.qcom file was different + missing the verify flag.
I replaced those two files, then ran repackimg.bat which created image-new.img which I renamed to boot.img. Interesting, though, that this file was only 45,890kb. If it's a repack, shouldn't it be the same or similar? Anyways, the phone was still in TWRP (hadn't booted to system since before the format data) so booted it into bootloader directly and tried flashing boot using my new 45mb boot.img.
If failed - but - my phone was only at 17% power. Don't know if that's why it failed or not so it's charging right now while still in the bootloader. Below is what was echoed when I tried flashing it:
Code:
c:\adb>fastboot flash boot boot.img
target reported max download size of 800000000 bytes
sending 'boot' (45890 KB)...
OKAY [ 3.488s]
writing 'boot'...
(bootloader) HOSD CL#656287
FAILED (remote: 4 RU_BATTERY_LOW please connect charger (17% < 30%))
finished. total time: 4.506s
The reason I didn't boot to system is that I thought that was when the encryption might take place. Going to wait until above 30% power then try flashing again. Powered down to charge, but plan to boot straight back into bootloader to flash. If you see anything that stands out or that I need to do otherwise, please let me know. Otherwise, I'll report back what the result was after getting above 30%.
Thanks again!
Click to expand...
Click to collapse
The repack is smaller because the backup uses "dd" to copy the entire block device. Not all that space is actually used after compression. That's nothing to worry about.
And these devices are very picky about flashing only when there's sufficient battery, so I'm sure that's the only reason it failed. TWRP, however, doesn't care how much battery you have, so you could always flash the new boot.img in recovery.
Captain_Throwback said:
The repack is smaller because the backup uses "dd" to copy the entire block device. Not all that space is actually used after compression. That's nothing to worry about.
And these devices are very picky about flashing only when there's sufficient battery, so I'm sure that's the only reason it failed. TWRP, however, doesn't care how much battery you have, so you could always flash the new boot.img in recovery.
Click to expand...
Click to collapse
Hey, hey, hey - think it worked!!
Once I got above 30%, I flashed without issue. I rebooted and was able to format an sd internally successfully, too. Now, I just need to verify it's rooted, but think it is. Thank you so much for your help! I'm going to write a guide for newbs like me to use in the future soon.
Thanks again!
bzowk said:
Hey, hey, hey - think it worked!!
Once I got above 30%, I flashed without issue. I rebooted and was able to format an sd internally successfully, too. Now, I just need to verify it's rooted, but think it is. Thank you so much for your help! I'm going to write a guide for newbs like me to use in the future soon.
Thanks again!
Click to expand...
Click to collapse
If your adopted storage doesn't show as corrupted, and you're able to open the SuperSU app in your app drawer and not get a message that no su binary is installed, you should be good to go .
bad topic

Categories

Resources