[Q] Boot Process - G Tablet General

I've looked in quite a few threads, including the custom mix ROMs. What I want to know is who has knowledge of how this thing boots? I've noticed on the 2 droids I've messed with you upgrade them with an update.zip and basically an empty file on the SD card.
I'm guessing the update.zip contains a squashfs or something similar along with a kernel, but I don't know for sure. Who can explain exactly what happens on boot, what devices it looks for filesystems/loop filesystems on etc?

muqali said:
I've looked in quite a few threads, including the custom mix ROMs. What I want to know is who has knowledge of how this thing boots? I've noticed on the 2 droids I've messed with you upgrade them with an update.zip and basically an empty file on the SD card.
I'm guessing the update.zip contains a squashfs or something similar along with a kernel, but I don't know for sure. Who can explain exactly what happens on boot, what devices it looks for filesystems/loop filesystems on etc?
Click to expand...
Click to collapse
The best way to learn about this stuff is by tearing down existing .zip flashers and reading about how boot.img files are built and trying to build your own.
The boot process is controlled by the bootloader (the thing that displays the Viewsonic birds logo and decides whether you are trying to boot into recovery, APX mode, or a standard boot).
The ZIP files that you flash actually run a script that writes an .IMG file contents to one or more partitions.
Most ROM flashers have two images they flash - a boot.img and a system.img. The system.img is a filesystem image of the system partition. The boot.img consists of two parts - a kernel and a ramdisk image (well, and a boot header). The kernel is the Linux kernel that's been compiled to provide all the core system functionality for Android. The ramdisk image (which is a GZIPed CPIO file) contains the init.rc file that does all the initialization, mounting of the main filesystem images and so on.
Once everything is mounted and configured, the Android ROM itself boots up.
I recommend reading this page for more info:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
Hope that helps!

That's more or less what I wanted, but for our device do you know the exact boot order? Mtd partitions then SD sd2 and maybe a USB disk? I'd really like to put a custom Roman on the sd2 and leave the rom factory.

muqali said:
That's more or less what I wanted, but for our device do you know the exact boot order? Mtd partitions then SD sd2 and maybe a USB disk? I'd really like to put a custom Roman on the sd2 and leave the rom factory.
Click to expand...
Click to collapse
I *think* (could be wrong) that both the externalSD (/sdcard2) and the USBDISK (/usbdisk) are mounted dynamically, via vold.
At least that's the way I understood it...
There's a thread here in this forum, about (dual) booting Ubuntu, that does something along the lines of what you're asking about...
Jim

rcgabriel said:
The best way to learn about this stuff is by tearing down existing .zip flashers and reading about how boot.img files are built and trying to build your own.
The boot process is controlled by the bootloader (the thing that displays the Viewsonic birds logo and decides whether you are trying to boot into recovery, APX mode, or a standard boot).
The ZIP files that you flash actually run a script that writes an .IMG file contents to one or more partitions.
Most ROM flashers have two images they flash - a boot.img and a system.img. The system.img is a filesystem image of the system partition. The boot.img consists of two parts - a kernel and a ramdisk image (well, and a boot header). The kernel is the Linux kernel that's been compiled to provide all the core system functionality for Android. The ramdisk image (which is a GZIPed CPIO file) contains the init.rc file that does all the initialization, mounting of the main filesystem images and so on.
Once everything is mounted and configured, the Android ROM itself boots up.
I recommend reading this page for more info:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
Hope that helps!
Click to expand...
Click to collapse
rcgabriel,
When you do an nvflash (ala bekit's), does the contents of bootloader.bin end up getting stored permanently on the Gtab's internal SDcard? And, whenever the Gtab is booted, the code in that bootloader is the first code that runs, deciding, as you said, whether or not to do a recovery or execute the boot.img?
Thanks,
Jim

Isn't the bootloader on one of the MTD partitions and not the sdcard? What I'm having the hardest time wrapping my head around is how this system boots in comparison to an x86 Debian 5.0 system.
The basic picture I have is that there is the rom/flash portion of the boot process and then the kernel and real filesystem are loaded and mounted. But using these custom roms, is it changing the flash and bootloader or just the kernel and OS? Meaning where exactly is the first thing the CPU hits to boot? Flash MTD partitions for the bootloader. Then is the kernel on the mtd partitions or on some separate partition on sdcard.
Since you can basically stick 2 files on an external uSD and send it into upgrade mode, can't you customize the filesystem contained in a zip and then stick it in and have a custom system with whatever you wanted added or removed?

Related

miminal boot image

I would like to pass a minimal boot image (something like ttylinux-arm) to fastboot. As I understand it, fastboot does not require the image be signed. If that is correct, is there any other fundamental obstacle to doing this other than building the image in a way that fastboot can deal with it.
I don't need the radio or buttons to work.
Also, from reading through the limited documentation that I've been able to find, it looks like 'fastboot boot' will boot an image from flash media and load it into memory without any ROM overwite - correct? I'd want to avoid touching the existing filesystem.
correct fastboot boot will load a kernel and intramfs packed into boot.img or recovery.img into ram and boot from it. Upon reboot you will boot from kernel on nand or whatever native filesystem your device has. Fastboot boot is for testing kernels without having to flash them to nand.

[Q] Why .img?

So in looking around I have not found any answer to my question. Why is everything to flash on the shield a .img instead of building zip files you can flash directly from recovery? I have been messing with android for quite a long time and know how to flash .img, fastboot, adb, ect. But dl'd and flashing a zip is far easier.
Any answers?
thanks.
*I think* that base factory images (.img files.) are meant to be flashed via fastboot, since they have a direct relationship with device specific partitions. Imagine a bit to bit flash, like a Ghost/Acronis image?!?
As for .zip files, they are installed via recoveries (CWM, TWRP, etc), because you just want to add/replace files in the / partition.
And with our Shield, until now, all OTAs are full system images, not updates.
I hope that I've explained this properly, if not please someone correct me
http://en.wikipedia.org/wiki/Fastboot#Fastboot
anthonws said:
*I think* that base factory images (.img files.) are meant to be flashed via fastboot, since they have a direct relationship with device specific partitions. Imagine a bit to bit flash, like a Ghost/Acronis image?!?
As for .zip files, they are installed via recoveries (CWM, TWRP, etc), because you just want to add/replace files in the / partition.
And with our Shield, until now, all OTAs are full system images, not updates.
I hope that I've explained this properly, if not please someone correct me
http://en.wikipedia.org/wiki/Fastboot#Fastboot
Click to expand...
Click to collapse
Not all ota are full system images, ota 65 and 67 are simple delta updates.
BTW, the main reason of .img files for images is because this can't depend on the recovery. How do you flash a recovery .zip file without a recovery?
You need to have a .img file that can be flashed via fastboot, it is VERY much "bricked" proff that a flashable zip
Thanks for the explanations. I realize some things need to be done via fastboot like unlocking or flashing a recovery for the first time.
I guess I have become spoiled by xda and the simplicity of modification that is available today. Far cry from hacking htcs back in the day.
thx -jason
Both answers are correct - it all depends on which software (on the device) is used to flash, and what format it accepts.
With Tegra devices you have at least 3 ways to flash stuff, from lowest to highest level:
- nvflash/tegrarcm mode. This is a very small firmware that is burnt in ROM and is thus always available no matter how hard you screw your device. It can run small programs (typically, a flasher) that are sent through USB. Problem is, for Tegra4 it will only accept signed binaries, which makes it useless for modders.
- bootloader/fastboot. The bootloader supports the fastboot protocol, which can flash .img files. The bootloader is written in flash memory so your bootloader partition must be in good shape.
- recovery/zip files. The recovery is a Linux image, so this means it is a full-blown system of its own right. Because of this it can support more format, including .zip archives with a script to describe how the archive should be installed.
So in the boot chain, you have 3 anchors from which you can flash images: boot rom (always available but unusable to us) -> bootloader -> recovery. The fact the boot rom cannot be used without a signed image (which is not available publicly) means that screwing your bootloader is sufficient to permanently brick your device.
Recovery images are more convenient since they are in .zip format and can for some be device-independent (e.g. superSU recovery images are flashed the same on every single device out there), contrary to the bootloader which can be different for every device. But they require a working recovery, which is not always granted - so for actual recovery, fastboot images are also useful.
That's why I love XDA
You're never alone!
Thanks for the additional info to all
Anthonws

[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

[Q] Is it safe to flash this?

Hi there XDA! I have a really big question/problem. I want to theme Clockworkmod Recovery with custom pictures/icons/themes and such. So far I installed Ubuntu VM, decompiled the Recovery Image into Kernel and Ramdisk, replaced the pre-loaded icons with my custom icons to the ramdisk. Finally, I recompiled it into a new recovery image!
However, since this program is designed for device boot images, Im still curious, can this be used for recovery images? I haven't editing anything within the kernel, just opened the ramdisk, replaced the /res/images with my own and did abootimg --create newcwm.img.
EDIT : All I know is that in the boot.cfg the boot parameter size has to be exact fit or hardbrick.
so I have attached the 2 files that shows the recovery image data/config of both of them.
Don't worry its just 2 txt files. Inside the other archive has the flash ready images. BOTH OF THEM. Also includes the already decompiled ramdisk and kernel to take a look at. In addition the bootimg.cfg is also in. It has everything you need to know
So, heres the question. If I decide to flash it to mmcblk0p21 which is the verified recovery partition for the GT-i9505, (Info on the partition informations/mount points below
http://forum.xda-developers.com/showthread.php?t=2342841
Then, hopefuly the flash to the recovery partition shouldn't hardbrick my device. Am I right? Or missing something.
I will attach both my image and the cwm recovery Image I decompiled. Please if you can tell me if theres something that has to be fixed to prevent me getting a $700 paperweight.
Note: The layout might be confusing inside the Archive, just please bear with me and just take your time. I can wait
PRESS ME TO DOWNLOAD

Boot image modification for Pixel? The usual steps don't work

Usually, for modifying boot images, I unpack boot images (either extracted from rooted phone, or from full system image) using Android Image Kitchen, make my changes in the ramdisk directory, repack and flash (using fastboot flash boot <image_new.img>).
However, this doesn't work for Pixel or Pixel XL. I could simply create a new file in the ramdisk directory, but it doesn't reflect in the phone's root directory. I suspect this has something to do with the partitioning changes for this device, although I haven't been able to find a good complete write up about what are the exact changes. I have noticed a few new partitions (like hosd.img, bootlocker.img, hyp.img, keymaster.img, etc) but I am not entirely sure what they are for.
Any ideas how I can make some simple changes to the boot image? I want to make changes to the rc files and add a few shell scripts (for some init.rc services), and make some changes to default.prop.
Edit: I have read a bit more online, and I figured out that the boot image's ramdisk is only used in recovery, and initramfs of the system image is used as the init and the root during the normal phone boot up. So I will be able to do what I want by modifying the system image? I tried going through Chainfire's boot image too, and I am not exactly sure how he manages to modify the content of the system using the boot image.

Categories

Resources