[APP] Boot Manager Pro - Dual boot unlimited ROMS! [WIP]
Hola peoples!!! Ok so I just thought I'd create my own thread on this matter. Mustangtim started one in apps and themes (and here is the link to that thread)
but since I'm taking over this project it was brought to our attention that this should be in the dev section as its no longer just an app.. I am actually tearing .imgs apart trying to figure out what the deuce.
FIRST OFF THIS IS A WORK IN PROGRESS, WE ARE NOT YET FULLY SUPPORTED. HOWERVER I'M DOING MY BEST TO CHANGE THAT.
Secondly if you want to help get this started please visit the market and grab the app here.
Its a $3 dollar app for unlimited amount of roms, based on your SD card storage capacity anyway. And speaking of which you need AT LEAST a class 4 or better SD card to make this run smoothly.
Also feel free to visit the forums at http://forum.init2winitapps.com/
Ok so here it is, Boot Manager Pro. Its been a long time coming for the g2x to dual boot. First off let me say long story short, I currently have a bootable SD Rom, known as ROM1. I have yet to be able to recreate my findings tho. But it works and it doesnt brick at all. However it is a bit laggy on my class 4 SD card. Luckily I've already done my research on this project as there are many threads of such awesome info so I'm just going to be lazy about it and quote the good people of xda versus re-writing it based off of their info.
So basically upon installing the app you need to setup your phone so that way you can properly install a ROM, follow these steps:
Originally Posted by ChrisDDD
So here's a very basic description of how it works... It doesn't partition your SD card, it just creates a folder of its own, and then sub-folders to hold the different roms you install. When you install a rom, it basically creates images of the usual Android partitions - system, data, cache, & boot. These are standard .img files, just like the ones Clockwork creates when you do a backup. After the images are created and wiped (formatted, which you should do initially) it installs your rom into these essentially the same way as Clockwork installs a rom to your phone's actual partitions. I assume it modifies the kernel that comes with each rom to mount the image files on the SD card instead of the phone's partitions.
When you want to boot a rom, it just replaces your current boot image with the modified one and restarts the phone. With the modified boot image, the system, data and cache images on the SD card are mounted to the correct locations and Android starts up none the wiser. The rom will initially run a little slow, because the SD card is slower than the internal memory, but after things get cached it speed up considerably.
When you want to reboot to another rom, or back to the phone's rom, Boot Manager again swaps boot images that mount the desired rom's partitions (in the case of the phone's rom) or files (in the case of an SD card installed rom).
When you first run Boot Manager, it makes a Clockwork flash able backup of your current boot image, which you can flash if a rom hangs or loops on startup. Alternatively, you can also simply boot into recovery and do an advanced restore, choosing just the boot image to restore from a backup. It accomplishes the exact same thing.
It can be a little hit or miss, with some roms just plain refusing to start through Boot Manager, but it does work and when it does, it's pretty amazing given what it's actually doing.
Go into the supersu(or superuser app) and then go to settings then disable logging or click none.
Then go into the BMP app and press the menu button on your phone, not the app, and go to settings. Once in settings put a check mark in force large boot.img, screen on during install, and then go into variables, leave tegra alone but change the sdcard block to show mmcblk1p1. Then press finish and let the app restart. By the way I didnt change any of the sizes of the .imgs but feel free to do so. But be warned do not decrease the size of the system.img only increase it, if desired.
Then after you've done the above you need to setup the phone rom. Click on 'Setup Phone' under phone rom and follow that process to setup your phone rom.
Once your phone rom is setup you may begin to install a zip to rom1 or rom2 or whatever slot you want. This is the tricky part. I have done tons of reading and most people say that if your using CWM, which us g2x'ers do, then you will probably have a better chance of getting a bootable rom by restoring from a nandroid backup you did versus installing new.
So after you decide which path you will take, nandroid backup or fresh rom install, choose install. If you choose a fresh rom, wipe system, data, and cache right away. If nandroid, then wipe after the install.
Now once you have clicked install put your phone down, DONT MESS WITH YOUR PHONE AT ALL! PUT IT DOWN AND WALK AWAY OR SOMETHING! Don’t mess with it, text from it, xda from it, dont even use the screen as a mirror!!!! lol seriously the app is picky and while under the .img creation process you want nothing to mess that up or you will not get it booted. You may however drag down the notifications bar to follow the progress of the install.
Once its complete, tap the install complete notification in the notification bar and let the app do its thing to finalize the install and get you back to your rom selection screen. Now if you did a nandroid back up here is where you click 'manage slot' and then factory reset the backup you did. Just do it, dont ask why.
7.1 Also so if you desire to install gapps and/or possibly a different kernel, now would be the time to do so while your here. I have read mixed reviews of doing this process right after the rom installs. However when I set up my rom1, I booted into it first all happily then realized I had no gapps. So I had to reinstall BMP on rom1 then boot back to phone rom and then I installed GB gapps and had no issues booting back into rom1.
Once the above steps are done if your feelin lucky go ahead and tap on boot the rom you installed, and if all goes well it will boot up.
If it boots up you need to post confirmation here!!! Provided info such as phone rom and the info on the sd rom you used and slot number and such.
Hopefully it will just work for you. I have done all the above steps using HFP 2.1 as my phone rom and only been able to get 1 bootable rom. Being it was for testing I used HFP as my phone rom and as well as my rom1.
So if the above steps dont wortk out for you and your boot lopped or what ever, then turn your phone off and reboot into cwm. You have 2 options to resolve the boot issue you just created. 1, you may go to restore then advanced restore then restore your boot. Or 2. select install a zip and nav to the bootmanager folder then phone rom then flash the update zip there.. then reboot and you should be back at your phone rom.
Here is a basic run down of everything that I have done so far:
When I first started working on this project I wasn’t doing any dev'ing to change any of the stuff in the boot.img. I just changed settings in the app per all the research I did. So when all was said and done I restored HFP 2.1 to ROM1 and it actually booted!! And it works lovely btw.. I can still boot into this rom today. I then decided to pass the word and ways that I created the working rom1, well I nor anyone else I passed the info to was able to get it working. Only one other person was able to confirm that rom1 works but only after I copied all my rom1 info and sent it to him for testing.. and he was able to boot into my created rom1… As I see it, it was a blue moon event that I have yet to repeat. So I thought eff it lets do some dev'in so I unpacked the boot.img from rom1 then compared that to the unpacked boot.img from rom2 that I created in my trial and error experiences. So in doing so I noticed 4 differences; 1, the mount points obviously, 2, in the sbin folder had a ueventd file from the working rom1 was a text file viewable by gedit in ubuntu. In rom2 it was just a non-readable file. 3, in the init.rc file was also missing a chmod command for system, (the command is in rom1 but not rom2) and 4, there was a ueventd.tegra file that was in rom1 that wasn’t in rom2, but everything else is the same. So I decided to plug and play with the differences to see if she boots and no go. I don’t understand why its boot looping because I am using the same rom as phone rom as for rom1 and rom2. So it boot looped. So I had to restore my boot.img many times in cwm.
So then I said eff it lets do some more research, then I noticed in the .zips folder plus the individual rom folder there are .zips that will let you flash via cwm if you get boot loops and 'should' get you booting to your desired sdrom. I then tried that way and no go.. so then I opened up the zip and had a look at the internals.. first there is the moveboot.sh file that the app runs in cwm flash the given boot.img. I then checked out the meta-inf and opened up the updater-script thinking that the app wasn’t actually flashing the boot.img which is why it loops... Well I think im half way right. However the script itself is lil dodgy... first thing I noticed was at the end of the script they have a command to cp the log from /tmp to /sdcard/bootmanager well the command was wrong so it never copied the log. So I fixed that. I also saw that the assert command was pointing to ‘boot’ instead of mmcblk0p5, so I changed that too. Then I decided to do away with the assert command and the moveboot.sh file they have going on to utilize the same functions that the kernel zips use, which is a kernel folder that holds the boot.img and a run_program that dd's the boot.img to 0p5. plus I even updated the update-binary that the file uses. I used the one from the g2x nullifier as I know that one was made for our phone and should have no issues.. plus there was a noticeable difference in the sizes of the provided binary to that replaced binary. So with the updated.zip file I then rebooted into cwm to flash that being that I was using a different command to flash the boot.img as well as the other changed stuff and still it boot looped. So as of now the only thing I don’t think ive done was grab the boot.img from rom1 then change the mount points, only change that, and then use that for rom2 and see if it boots. I don’t think I’ve done that yet. But every dam process I do I get boot loops. So basically I have came to the conclusion that it’s now NOT a boot.img issue being that I have done everything to change the boot.img and to make sure it flashes, which it does indeed and now creates the log too… I think maybe it has issues with the system.img as that’s what comes next in the boot process. But that’s just my hypothesis. I won’t be able to confirm this till I liberate rom1’s boot.img then change the mount points to point to rom2 and then see if it boots.. if it don’t work then that would mean to me that there is an issue with system.img created. But that’s just my hypothesis…
What I don’t understand is why the eff when I didnt hack the app I got a working sd-rom, but when I do change some stuff with it still don’t work!!???!! I guess maybe ill just edit/hack the apk to see what’s up.. This is getting way more complicated than it needs to be, since it worked prior to all my major changes to the script its using for flashing and the boot.img and what not. Anyone have any ideas feel free to add them.
My next steps are to edit rom1 boot.img one last time to change the mount points to point to rom2 and then if that’s a no go then it’s got to be the system.img that’s getting created. By the way this whole process I have only been restoring my nandroid backup for HFP 2.1. I have not attempted to flash new as with thru my research more times than not people would get a bootable rom via restoring versus flashing new.. so if anyone wishes to experience an sd rom let me know, ill send you a link to download my rom1 to get it going. Mind you that its not perfect and you need a class 4 or better sdcard. Everything works but it just takes a bit longer to load things and get things cached as its on the sdcard and not nand. Also if you have any input or are wishing to help pm me I need more heads to get this sorted as I can’t be the only one who knows how to edit scripts and unpack imgs and such. Either way I will continue to do this until I get it right damit!!! Oh and I just ordered a class 10 sdcard to help with this process…
That was copied from the other thread that mustangtim started. Last night when I went home the first thing I did was change the mount points on rom1 to reflect rom2, I changed nada else, then I tried to boot it... it boot looped. So maybe its a permissions issue or the system.img.
So just as a proof of concept and before anyone calls bs on my work/findings Here is the link to my rom1 that boots and is HFP2.1. *Update, 'm just going to
leave it on my DB for now till I find something better I guess. xda wont let me attach the file since its 233MB. Oh well here is the link :
Here it is, my Rom1 HFP 2.1.
I have also attached my updated script file to flash back to rom1, for now.
The boot.img points to rom1 instead of phone rom, ill add to phone rom
as well, just not the now. :) Feel free to flash this via cwm versus
Also this is part of the this: the ‘.zips’ folder you need to replace the file in
that folder as well. It’s an update file for rom1 to flash the boot.img.
If you’re going to use this you need install a random rom to rom1 then replace those created files in rom1 with these files in the 7z file..
So I am doing this new thread to get the devs or people with know how to help me out with my findings. I have edited the boot.img so much I could pretty much re-write everything in there by now including using magic to create to my own kernel eff!! lol jk but seriously I need people with knowhow to provide confirmation of go or no go. Basically I have people whom have helped out but It seems that I'm the only one who has dug this far into this app(unless i've been misinformed) and I have no one on my level to talk with except the init2winit devs. Which are very helpful btw.
Originally Posted by Conap
Guys if it's failing to make the boot.img first make sure your using the market version....others have released cracked versions of our app which they broke...if your using the actual market version just send me a pm or email email@example.com
and send your log.txt from BootManager folder on sdcard and we'll get it straightened out. Thanks.
or post here or PM me, I'm always down to help out.
Also thanks go to the init2win team, Gflam and Conap as they started this app. and as well to Mustangtim as he brought me into the light of BMP.
So you got all that???!!!??? Now lets get this party started and get full support for dual booting. I will not rest until I get this working. Thanks for your time and possible assistance.