Remove All Ads from XDA

[TABLET Z COMPETITION ENTRY]Multiboot solution [Updated 31/07/2013]

280 posts
Thanks Meter: 1,323
Post Reply Email Thread
The end-goal is to allow a graphical menu (similar to grub on PC's) that lets you boot different kernels (and ROMs - requires the ROM's to support it) from various media. This includes on-flash, SD based and USB but could theoretically also include network booting as well.

My current plan is to base the solution on the kexec-hardboot patches my mkasick. I've previously ported those patches to ASUS TF201 and my changes have then been adapted to Nexus 7 and is being used quite extensively.

At present time there is one big disadvantage to this method: It puts requirements on the target kernel. One of my goals in this project is to remove those requirements, so it will also work with stock unmodified kernels.

As far as the graphical part is concerned, the original plan was an extended KxecBoot(.org) or MultiBoot (based on TWRP).
After investigating the available solutions, I decided that I'd (shock-horror) implement my own. The current solutions seem overcomplicated to use and not exactly pretty to look at.

My solution, dubbed Hydra, is a simple - true-and-tried - grid of icons. It's based on recovery's minui graphics and the grid automatically aligns based on how many boot images are present. At present it is limited to 10 boot images, but this will be changed later.
The graphics rendering is optimized and will be improved further, possibly allowing for simple animations and such - but lets leave that for a v2

See screenshots in second post.
It works by reading a simple boot.ini, specifying name, icon, boot.img or raw kernel + ramdisk + cmdline. The device-specific commandline arguments required to boot the kernel will all features are automatically appended to the given cmdline, similarly to how the bootloader does it.
It is going to support multiple boot.ini's which are then merged to give the final set of images. This allows storing a boot.ini on e.g. microsd or usb storage and automatically get a suitable boot icon.

Source and images will come soon, there are a few minor issues that needs to be finished first.

  • Tablet arrived!
  • 06/07/13: Kexec patches tested successfully! Kexec booting is a go!
  • 31/07/13: Multiboot solution is nearly done

Stock kernel with patches
CM Kernel with patches
Kexec tools with hardboot patches

Mike Kasick for thinking up the original kexec hardboot patches
The Following 8 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 05:27 PM |#2  
OP Recognized Developer
Thanks Meter: 1,323
Donate to Me
Actual example of boot images loaded from a boot.ini:

Test with 5 icons

Test with 10 icons:
Attached Thumbnails
Click image for larger version

Name:	hydra_debian.jpg
Views:	4083
Size:	13.8 KB
ID:	2164912   Click image for larger version

Name:	hydra5.jpg
Views:	4084
Size:	16.4 KB
ID:	2164913   Click image for larger version

Name:	hydra16.jpg
Views:	4076
Size:	26.8 KB
ID:	2164914  
The Following 3 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 05:28 PM |#3  
OP Recognized Developer
Thanks Meter: 1,323
Donate to Me
Frequently Asked Questions

How does it work?
In essence, it works by replacing kernel/bootimage in RAM while booting.

What does it allow booting from?
It allows booting from any media the linux kernel can access on the device. This includes internal flash (any partition), external SD card and USB Storage. In theory, it can also be extended to support booting over network

Are there any limitations?
No! Or yes. Due to the way android images mount filesystems, the image needs to be modified in order to boot a full system from e.g. SD. For regular linux this is not the case, because they support the 'root' commandline argument and loads filesystem information from that root.

Will it replace e.g. TWRP or CWM
Yes and no. It will replace the primary boot image of the tablet. This means that whenever the tablet boot, the multiboot solution runs. It can be setup to automatically boot an image after a configurable timeout, e.g. a few seconds usually and as such will add some seconds to the total bootup time. But really, how often do you turn off your tablet?
I'm looking at possibly including a CWM or TWRP image in the flashed image, to always have a backup recovery at hand.
The Following 2 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 05:28 PM |#4  
OP Recognized Developer
Thanks Meter: 1,323
Donate to Me
Reserved 3
The Following 2 Users Say Thank You to rayman For This Useful Post: [ View ]
22nd June 2013, 09:10 PM |#5  
DooMLoRD's Avatar
Inactive Recognized Developer
Flag Pune
Thanks Meter: 39,795
this one is interesting...

if u can get the kexec to work getting the menu to work is easy... i had created someting similar WAY BACK for the Xperia X10:

The Following 2 Users Say Thank You to DooMLoRD For This Useful Post: [ View ] Gift DooMLoRD Ad-Free
25th June 2013, 01:50 AM |#6  
juanyunis's Avatar
Senior Member
Flag Somewhere
Thanks Meter: 41
Indeed, having a multiple boot options is something amazing, imaging having ubuntu touch and android running on 1 single device.
25th June 2013, 05:51 AM |#7  
theZest's Avatar
Senior Member
Flag Vladivostok
Thanks Meter: 63
Please take a look on Boot Menu Manager for Moto RAZR XT910. I guess it would help you somehow. At least for overall concept.

Carved in this thread with my RAZR HD
26th June 2013, 01:15 AM |#8  
Senior Member
Thanks Meter: 758
i would like to see the multiboot option b used. i have a nexus 7 and love multiboot. i have like 5 roms in my list. i also have a droid razr and have tried BMM as mentioned but still think multiboot is the way to go. thanks for this project Rayman can't wait to see it evolve!
i get my tablet tmrw can't wait
3rd July 2013, 05:39 PM |#9  
OP Recognized Developer
Thanks Meter: 1,323
Donate to Me
Good news! Tablet is here and the work can begin
Once I've tested my changes, I'll post the kernel changes required for initial version.
The Following User Says Thank You to rayman For This Useful Post: [ View ]
3rd July 2013, 06:26 PM |#10  
Senior Member
Thanks Meter: 758
6th July 2013, 02:34 PM |#11  
OP Recognized Developer
Thanks Meter: 1,323
Donate to Me
The basic kexec-hardboot port works - sources pushed to github (See original post).
Basic howto for using it while I work on the remaining parts will come later.
Post Reply Subscribe to Thread

competetion, multiboot, tablet z, xda tablet z competition

Guest Quick Reply (no urls or BBcode)
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes