[Multi Boot] Boot Menu

Search This thread

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
Multiboot for Sony Xperia Z1


How to install boot menu
- download bootmenu_honami.rar, extract folder "bootmenu" to the your internal storage
- put boot.img or kernel.elf to the mainrom folder, make sure thats the same kernel like your primary rom (aka main rom)
- download bootmenu.img from attachment, flash bootmenu.img using fastboot commnd: fastboot flash boot bootmenu.img

Since your bootmenu folder not contain settings.ini (you runing bootmenu at a first time) that will be created easily. You need to complete main step aka main rom creation:
1. (mainrom creation) reboot into bootmenu, chose "patch...", navigate to bootmenu, navigate to mainrom, select mainrom.zip package (make sure boot.img or kernel.elf is the same like your current main rom kernel, and make sure boot.img is in folder mainrom), select mainrom.zip and click "yes". Main rom will be added into boot menu entry. Now reboot again into boot menu and you will see new menuentry, chose these menu to boot into your primary rom! :)
2. (other roms creation - you can do only if you completed main rom step) reboot into bootmenu, chose "patch...", principe is diferent (there is 2 steps):
- step 1: chose rom zip you want to patch, patch them
- step 2: reboot again into boot menu (new rom entry will be displayed), select these rom to boot, on led blinking press to boot into cwm, now you are in cwm of these rom, now navigate to the same folder where is your package, you will find zip with appended name "patched.zip", chose these patched zip to install trought these recovery, you are done! :)

If something fail, make sure look into bootmenu folder into main script aka "multiboot.sh", try to fix-improve something ;) Enjoy!

WARNING:
- NEVER RENAME FOLDERS OR ZIP ARCHIVES TO HAVE SPACE IN NAME SINCE BOOTMENU WILL NOT WORK!!! INSTEAD OF WRITING SPACE " " WRITE "_" SOMETHING_LIKE_THIS" !
- there is possibility for your partitions of the main rom to get overwriten if multiboot.sh fail to patch these rom you going to patch, just to let you know! Two click solution is in testing stage so there is probably a lot of bugs! I am not responsible if you lost your private data! So guys if you willing to help, I am waiting. Things need to be improved in multiboot.sh !
 

Attachments

  • bootmenu_honami.zip
    14.8 MB · Views: 1,676
  • bootmenu.img
    10.4 MB · Views: 1,053
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
Here is full source code of the my bootmenu project -> https://github.com/munjeni/bootmenu_z1_and_z1c

Public License for BOOTMENU and for my Auxiliary Work
You can Distribute my source without my Permissions. Distribution should include my XDA name 'munjeni' and Link to this 'BOOTMENU' thread in your Credits sections/About sections and Properly Visible to Human Eyes. If you use our source and have them modified, you need to make them public to everyone!!! If you not propertly use my source and you not give proper credit, and you not share your modified source code which is based on my source code, I will find you and I will report your post! ;)


And... If You Like my BOOTMENU... Remember to Press...Thanks button;)
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
Credits

- @abbychauhan first one who helped me in testing boot menu, thanks!
- @krabappel2548 for kernel with kexec! I have used his kexec kernel in our boot menu for Z1, thanks!
- @HypoTurtle for sugestions, thanks!
- @DooMLoRD for opening my eyes since I had a wrong kernel on my local hard drive :eek:
- @SafiXS , @Chocolatetrain, @ntmohammad ...sory if I forgot someone, thanks to all for testing!
 
Last edited:

abbychauhan

Senior Member
Dec 20, 2013
1,833
1,131
JAIPUR
"Post Updated on 22/06/2014"

MultiBoot Totally Simplified (Noob Friendly)

Whole Multiboot Procedure for better understanding..
We will do this in two parts procedure as Follows -

Part 1 -
First we will do the mainrom creation. "Mainrom" - The ROM which is Currently installed on your phone.


1. First Download bootmenu_honami.rar, extract folder "bootmenu" to your Phone's Internal storage

2. Put boot.img or kernel.elf (Of the ROM which is Currently installed on your phone) to the mainrom folder (its in the bootmenu folder) of extracted rar file,
make sure thats the same kernel i.e, boot.img or kernel.elf like your primary rom of yours which is currently installed

boot.img - you can extract it from the ROM zip file or Custom Kernel zip file eg. ROM.zip or Doomloards Kernel zip

Kernel.elf - U ll have to convert kernel.sin from ROM zip file to kernel.elf via Flashtool (It has got option to do that)

3. Download bootmenu.img from attachment, flash bootmenu.img using fastboot commend: fastboot flash boot bootmenu.img

4. Reboot into bootmenu, choose "patch...", navigate to mainrom folder (it has to be in the internal memory, inside the folder bootmenu),
select mainrom.zip package (make sure boot.img or kernel.elf is the same like your current main rom kernel, and make sure boot.img or kernel.elf is in folder "mainrom" ),
select mainrom.zip and click "yes". Main rom will be added into boot menu entry.
Now reboot again into boot menu and you will see new Entry Mainrom and Mainrom - CWM, choose Mainrom from Multiboot Menu to boot into your primary rom or Choose mainrom - CWM to go into mainrom Recovery

Part 2 -
Other ROMs creation - You can do it only if you completed main rom step)


1. Reboot into bootmenu, chose "patch...",

2. Navigate to Second ROM ZIP file
(Keep it anywhere in External Memory Card Because you wont be able to access Internal Memory of your Phone via another ROM Recovery due to change of Partitions, All ROMs will be installed on Internal Memory),
Choose ROM zip you want to patch, patch them

3. Reboot again into boot menu (new ROM entry will be displayed), go into ROM - CWM to go into Recovery of the particular ROM,
Now you are in Recovery of New ROM, Go to install ZIP (Installation of ROM) and
navigate to the same folder where you kept the ROM ZIP file (on External Card Memory),
you will find a new zip with appended name "patched.zip",
chose these patched zip to install trough the Recovery,

4. Flash C6902 fix, if u have C6902 Device (keep it On External Memory too),

5. Boot into ROM then Do a REBOOT and again go to Secondary ROM - CWM

6. Flash Gapps (keep it On External Memory too)

7. Flash Any Mod or anything if you wanted to flash for Your ROM (keep it On External Memory too)
Except Custom Kernels or Something that will wipe bootmenu.img ( Its WIP you can check out the Conversations on Page 48/49/50 )

8. Do Reboot

9. In Bootmenu Select the Newly installed ROM.

You are done!
Enjoy!

Common Questions -
1. How many ROMs I can Install?
Answ - http://xdaforums.com/showpost.php?p=53236187&postcount=399

2. How to go from One ROM Partation to Another ROM Partation via File Explorer?
Answ - http://xdaforums.com/showpost.php?p=53318812&postcount=476

3. How to get kernel.elf?
Answ - http://xdaforums.com/showpost.php?p=53234909&postcount=384
and http://xdaforums.com/showpost.php?p=53234988&postcount=386
and http://xdaforums.com/showpost.php?p=53235075&postcount=387

4. How to take Screenshot of CWM?
Answ - http://xdaforums.com/showpost.php?p=53229901&postcount=358
and http://xdaforums.com/showpost.php?p=53230193&postcount=362

5. We get ROM updates now and then how do we do it? If we want to remove The Whole Multiboot Thing or a ROM from Bootmenu and to uninstall it completely from our phone then what is the procedure?
Answ - http://xdaforums.com/showpost.php?p=53076327&postcount=277
and http://xdaforums.com/showpost.php?p=53077937&postcount=281

6. Stock Based ROMs ask to flash the Stripped FTF via flashtools in the END, if we keep Stock based ROMs as Secondary ROMs then how will it work then, it will wipe other ROMs Kernal and bootmenu kernal?
Answ - Its Hard but http://xdaforums.com/showpost.php?p=53150024&postcount=325
and http://xdaforums.com/showpost.php?p=53150187&postcount=326

7. Power Off Charging?
Answ - http://xdaforums.com/showpost.php?p=53144286&postcount=322

8. The partition made by Multi Boot for other ROMs is very small, Why is that? Can it be increased?
Answ - http://xdaforums.com/showpost.php?p=53116039&postcount=313
and http://xdaforums.com/showpost.php?p=53118687&postcount=316
and http://xdaforums.com/showpost.php?p=53118722&postcount=317

9. I want to change the name of "mainrom" and Secondary ROM names in boot menu?
Answ - http://xdaforums.com/showpost.php?p=53107296&postcount=307

10. Gapps on Primary ROM?
Answ - http://xdaforums.com/showpost.php?p=53027261&postcount=240

11. Main ROM Update / MainROM Kernal Change?
Answ - http://xdaforums.com/showpost.php?p=53565558&postcount=571
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
Complicated and not for noobs, but hope some one do it for you if you are confused! Seccond tut will be more complicated since all ramdisks need to be moded specialy for every each android which you going to boot. I will try to explain :)
 

abbychauhan

Senior Member
Dec 20, 2013
1,833
1,131
JAIPUR
Complicated and not for noobs, but hope some one do it for you if you are confused! Seccond tut will be more complicated since all ramdisks need to be moded specialy for every each android which you going to boot. I will try to explain :)

Ya this thread really need a helpful Dev. Who will answer all questions.. And Of course not for noobs.. I think i ll scratch my head all night..

Sent from my Micromax A110Q using Tapatalk
 

Androguide.fr

Account currently disabled
Jul 21, 2012
2,056
7,236
GB
meettomy.site
Awesome work :good:

Could you please give me some instructions on how to add your multiboot to a host kernel when building from source?
I'm working on a kernel for the z1, and I have krabappel's kexec patch implemented.
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
Awesome work :good:

Could you please give me some instructions on how to add your multiboot to a host kernel when building from source?
I'm working on a kernel for the z1, and I have krabappel's kexec patch implemented.

Simple extract ramdisk and make boot.img with your kernel! :) I will upload new version now, version v1.1 (support for booting from booth internal and external sdcard)! Since booting from extrernal sdcard sause some lags if sd cards is not "best speed", recomended is booting from internal sdcard since performance is the same like booting from regular boot! Wait a moment, going to upload new version in next 10 minutes! When I get more free time I will give you preconfigured menu entry with installed CM11 into file partitions so you can multiboot them without needs for lookig into our tutorials, you will simple extract them and boot :)
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
I'll try to release the multiboot I was working on. It is a lot easier for users then all this editing probably :p

Sent from my C6903 using xda app-developers app

How you think to make that simple? Since external partitions is needed, allso since standard flashable zips will allso need to be modified in updater-script, allso since ramdisks need to be modified, all fstabs need to be modified, DTB need to be appended propertly to the zImage in order to boot them with kexec... a lot of other things, I think easy method is not possible definitely! Maybe a am wrong?

I have 2 ideas now for my boot menu:
- create 3 partitions (probably will open a new thread for sharing diferent partitions layout, for example cache 50mb, cache 100mb, cache 150mb, cache 200mb, system 500mb, system 1gb, system 1.6gb, data 500mb, data 1gb, data 2gb...) so after compresing them to rar size of the archive will be ~100mb
- or maybe we can implement on the fly partitions creation by the updter-script

Problem will be kernel and ramdisk since it need modification. Maybe we can ask devs to include ramdisk and kernel for multiboot in his posts.

I am out of ideas, but I think we need to make automated tool for these things. If you guys have idea please comment!

Tool needed:
- tool for extracting boot image and making zImage-dtb
- tool for extracting ramdisk, making changes needed for boot from loop device, compresing modified ramdisk
- tool for partitions creation with defined size and defined path for puting them to defined folder
- tool for entry in settings.ini creation
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
Partition creation is easy. There is few steps to create file based partition:

1. first of all - how to calculate size of the partition:
Simple using calculator. Formula is: (size * 1024 * 1024) / 4096

Foe example: you want 500mb partition, ok, formula is: (500 * 1024 * 1024) / 4096

So command for making them with adb will be:
adb shell
mkdir /data/media/0/bootmenu/folder_you_want
dd if=/dev/zero of=/data/media/0/bootmenu/folder_you_want/system.ext4 bs=4096 count=count_from_your_calculation
dd if=/dev/zero of=/data/media/0/bootmenu/folder_you_want/data.ext4 bs=4096 count=count_from_your_calculation
dd if=/dev/zero of=/data/media/0/bootmenu/folder_you_want/cache.ext4 bs=4096 count=count_from_your_calculation

2. get UUID of the system partition (need for step 3):
blkid /dev/block/platform/msm_sdcc.1/by-name/system

3. format created partiton:
losetup /dev/block/loop1 /data/media/0/bootmenu/folder_you_want/system.ext4
losetup /dev/block/loop2 /data/media/0/bootmenu/folder_you_want/data.ext4
losetup /dev/block/loop3 /data/media/0/bootmenu/folder_you_want/cache.ext4
mke2fs -T ext4 -O has_journal,ext_attr,resize_inode,filetype,extent,sparse_super,large_file,uninit_bg -U paste here your UUID -I 256 /dev/block/loop1
mke2fs -T ext4 -O has_journal,ext_attr,resize_inode,filetype,extent,sparse_super,large_file,uninit_bg -U paste here your UUID -I 256 /dev/block/loop2
mke2fs -T ext4 -O has_journal,ext_attr,resize_inode,filetype,extent,sparse_super,large_file,uninit_bg -U paste here your UUID -I 256 /dev/block/loop3
tune2fs -o journal_data_writeback /dev/block/loop2
tune2fs -o journal_data_writeback /dev/block/loop3
losetup -d /dev/block/loop1
losetup -d /dev/block/loop2
losetup -d /dev/block/loop3

Partitions created easily :)

Note:
These things must be done while you are in bootmenu since I am not sure if mke2fs, blkid and tune2fs tool is available while you are on android! So you can done that in bootmenu via adb!
 
Last edited:

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
CWM ramdisk modifications

all fstabs need to be modified, for example fstab.qcom:
Code:
/dev/block/platform/msm_sdcc.1/by-name/boot      /boot    emmc  defaults                                                                   recoveryonly
/dev/block/platform/msm_sdcc.1/by-name/system    /system  ext4  ro,barrier=1                                                               wait
/dev/block/platform/msm_sdcc.1/by-name/cache     /cache   ext4  noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic  wait,check
/dev/block/platform/msm_sdcc.1/by-name/userdata  /data    ext4  noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic  wait,check,encryptable=footer,length=-16384
remove line:
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults recoveryonly

changed:
Code:
/dev/block/loop1    /system  ext4  ro,barrier=1                                                               wait
/dev/block/loop3     /cache   ext4  noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic  wait,check
/dev/block/loop2  /data    ext4  noatime,nosuid,nodev,barrier=1,data=ordered,nomblk_io_submit,noauto_da_alloc,errors=panic  wait,check,encryptable=footer,length=-16384

In etc you can see another recovery.fstab, change them like you done for qcom.fstab!

init.rc:
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18D1
write /sys/class/android_usb/android0/idProduct D001
write /sys/class/android_usb/android0/functions adb
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}

on boot

ifup lo
hostname localhost
domainname localdomain

add:
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 18D1
write /sys/class/android_usb/android0/idProduct D001
write /sys/class/android_usb/android0/functions adb
write /sys/class/android_usb/android0/iManufacturer ${ro.product.manufacturer}
write /sys/class/android_usb/android0/iProduct ${ro.product.model}
write /sys/class/android_usb/android0/iSerial ${ro.serialno}

on fs
wait /dev/block/platform/msm_sdcc.1/by-name/userdata
mkdir /sde
mount ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata /sde rw wait
exec /sbin/losetup /dev/block/loop1 /sde/media/0/bootmenu/cm11/system.ext4
exec /sbin/losetup /dev/block/loop2 /sde/media/0/bootmenu/cm11/data.ext4
exec /sbin/losetup /dev/block/loop3 /sde/media/0/bootmenu/cm11/cache.ext4


on boot

ifup lo
hostname localhost
domainname localdomain

red line "cm11" mean that you have created cm11 folder in boot menu and use these folder for example for booting into cm11! On these "cm11" folder you have created partitons, ramdisks, kernel...etc!
 
Last edited:
  • Like
Reactions: Androguide.fr

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
ROM ramdisk modifications

For example CM11 ramdisk.

when you unpack cm11 boot.img, when you unpack ramdisk you will notice 2 ramdisks, one is rom ramdisk and one is recovery ramdisk (ramdisk.cpio and ramdisk.recovery.cpio). Look into previous post for CWM ramdisk modification.
Modification for ROM ramdisk (ramdisk.cpio):

init.rc file:
look for line "mkdir /system", added one line before these line: "mkdir /sde"

fstab.qcom:
the same like you done on CWM ramdisk!

init.qcom.rc:

look for lines:
on fs
mount_all ./fstab.qcom
setprop ro.crypto.fuse_sdcard true

add:
on fs

wait /dev/block/platform/msm_sdcc.1/by-name/userdata
mkdir /sde
mount ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata /sde rw wait
exec /sbin/losetup /dev/block/loop1 /sde/media/0/bootmenu/cm11/system.ext4
exec /sbin/losetup /dev/block/loop2 /sde/media/0/bootmenu/cm11/data.ext4
exec /sbin/losetup /dev/block/loop3 /sde/media/0/bootmenu/cm11/cache.ext4
exec /sbin/e2fsck -y /dev/block/loop2
exec /sbin/e2fsck -y /dev/block/loop3

mount_all ./fstab.qcom
setprop ro.crypto.fuse_sdcard true

red line "cm11" mean that you have created cm11 folder in boot menu and use these folder for example for booting into cm11! On these "cm11" folder you have created partitons, ramdisks, kernel...etc!
 
Last edited:
  • Like
Reactions: Androguide.fr

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
updater script in rom zip modification

For example you want to install cm11 in multiboot, ok, download an rom, for example download CM11 by FXP or one by Cyanogenmod, open zip, find, open and modify updater-script and change all lines:

1. for system:
Code:
.........."/dev/block/platform/msm_sdcc.1/by-name/system"............
change to:
Code:
.............."/dev/block/loop1"..............

2. for userdata:
Code:
............."/dev/block/platform/msm_sdcc.1/by-name/userdata"............
change to:
Code:
..........."/dev/block/loop2"................

3. for cache:
Code:
........"/dev/block/platform/msm_sdcc.1/by-name/cache"..........
change to:
Code:
..........."/dev/block/loop3"...........

4. for boot:
Code:
.........."/dev/block/platform/msm_sdcc.1/by-name/boot".........
change to:
Code:
............"/dev/null"...........

Note:
To understand this step. You doing these modifications since you going to install rom to partitions which you created on your internal sdcard! For example: if you not modify ramdisk, your rom will be installed to your phone partitions instead of one created by you! So to install rom to partitions which you have created, you must modify updater script to point installation to install rom into partitions which you created earlier instead of intalling them to regular partition! If you install rom to regular partitions that mean you will overwrite your main rom and bootmenu, so you will boot into cm11 on reboot instead of buting into multiboot! Hope thing clear?
 
Last edited:
  • Like
Reactions: OmarEinea

munjeni

Senior Member
Jun 2, 2011
9,720
22,375
Creating menuentry for new rom in multiboot (boot menu) settings.ini

Since you created partitions, since you modified ramdsiks, since you created kernel (sorry I removed post entry related to kernel modification... I will instruct you later!), since you modified rom zip which you want to install... you are ready for flashing! Before flashing rom to partitions, you need to add menu entry in settings.ini of the bootmenu!

How to add new rom entry to boot menu:

For example you created all partitons in .../bootmenu/cm11 folder
For example you have system.ext4, data.ext4, cache.ext.4, initrd.gz (modified cm11 ramdisk), and Zimage-dtb (modified CM11 zImage) in cm11 folder

Ok now you can add menuentry to setting.ini:

[rom-1]
menutitle=CM11
kernel=/data/media/0/bootmenu/cm11/zImage-dtb
ramdisk=/data/media/0/bootmenu/cm11/initrd.gz
cmdline=no_need_anymore

You are done! Title you have defined in "menutitle" will be displayed in boot menu!

Now you need to boot into cm11. When you boot into cm11 you will get "timing for recovery boot, led light!", if everything is propertly modified in all of the things you will get lucky to see led light where you need to pres volume button to get into recovery! If you enter into cm11 recovery that mean that you are in sucess :), Ok now install your modified rom zip package (in these step cm11 will be installed to partitions which you have created earlier) and you are done! Reboot and enjoy cm11 in multiboot! The same steps is for all roms which you want in multi boot! Max roms is 10!
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 51
    Multiboot for Sony Xperia Z1


    How to install boot menu
    - download bootmenu_honami.rar, extract folder "bootmenu" to the your internal storage
    - put boot.img or kernel.elf to the mainrom folder, make sure thats the same kernel like your primary rom (aka main rom)
    - download bootmenu.img from attachment, flash bootmenu.img using fastboot commnd: fastboot flash boot bootmenu.img

    Since your bootmenu folder not contain settings.ini (you runing bootmenu at a first time) that will be created easily. You need to complete main step aka main rom creation:
    1. (mainrom creation) reboot into bootmenu, chose "patch...", navigate to bootmenu, navigate to mainrom, select mainrom.zip package (make sure boot.img or kernel.elf is the same like your current main rom kernel, and make sure boot.img is in folder mainrom), select mainrom.zip and click "yes". Main rom will be added into boot menu entry. Now reboot again into boot menu and you will see new menuentry, chose these menu to boot into your primary rom! :)
    2. (other roms creation - you can do only if you completed main rom step) reboot into bootmenu, chose "patch...", principe is diferent (there is 2 steps):
    - step 1: chose rom zip you want to patch, patch them
    - step 2: reboot again into boot menu (new rom entry will be displayed), select these rom to boot, on led blinking press to boot into cwm, now you are in cwm of these rom, now navigate to the same folder where is your package, you will find zip with appended name "patched.zip", chose these patched zip to install trought these recovery, you are done! :)

    If something fail, make sure look into bootmenu folder into main script aka "multiboot.sh", try to fix-improve something ;) Enjoy!

    WARNING:
    - NEVER RENAME FOLDERS OR ZIP ARCHIVES TO HAVE SPACE IN NAME SINCE BOOTMENU WILL NOT WORK!!! INSTEAD OF WRITING SPACE " " WRITE "_" SOMETHING_LIKE_THIS" !
    - there is possibility for your partitions of the main rom to get overwriten if multiboot.sh fail to patch these rom you going to patch, just to let you know! Two click solution is in testing stage so there is probably a lot of bugs! I am not responsible if you lost your private data! So guys if you willing to help, I am waiting. Things need to be improved in multiboot.sh !
    30
    Here is full source code of the my bootmenu project -> https://github.com/munjeni/bootmenu_z1_and_z1c

    Public License for BOOTMENU and for my Auxiliary Work
    You can Distribute my source without my Permissions. Distribution should include my XDA name 'munjeni' and Link to this 'BOOTMENU' thread in your Credits sections/About sections and Properly Visible to Human Eyes. If you use our source and have them modified, you need to make them public to everyone!!! If you not propertly use my source and you not give proper credit, and you not share your modified source code which is based on my source code, I will find you and I will report your post! ;)


    And... If You Like my BOOTMENU... Remember to Press...Thanks button;)
    19
    "Post Updated on 22/06/2014"

    MultiBoot Totally Simplified (Noob Friendly)

    Whole Multiboot Procedure for better understanding..
    We will do this in two parts procedure as Follows -

    Part 1 -
    First we will do the mainrom creation. "Mainrom" - The ROM which is Currently installed on your phone.


    1. First Download bootmenu_honami.rar, extract folder "bootmenu" to your Phone's Internal storage

    2. Put boot.img or kernel.elf (Of the ROM which is Currently installed on your phone) to the mainrom folder (its in the bootmenu folder) of extracted rar file,
    make sure thats the same kernel i.e, boot.img or kernel.elf like your primary rom of yours which is currently installed

    boot.img - you can extract it from the ROM zip file or Custom Kernel zip file eg. ROM.zip or Doomloards Kernel zip

    Kernel.elf - U ll have to convert kernel.sin from ROM zip file to kernel.elf via Flashtool (It has got option to do that)

    3. Download bootmenu.img from attachment, flash bootmenu.img using fastboot commend: fastboot flash boot bootmenu.img

    4. Reboot into bootmenu, choose "patch...", navigate to mainrom folder (it has to be in the internal memory, inside the folder bootmenu),
    select mainrom.zip package (make sure boot.img or kernel.elf is the same like your current main rom kernel, and make sure boot.img or kernel.elf is in folder "mainrom" ),
    select mainrom.zip and click "yes". Main rom will be added into boot menu entry.
    Now reboot again into boot menu and you will see new Entry Mainrom and Mainrom - CWM, choose Mainrom from Multiboot Menu to boot into your primary rom or Choose mainrom - CWM to go into mainrom Recovery

    Part 2 -
    Other ROMs creation - You can do it only if you completed main rom step)


    1. Reboot into bootmenu, chose "patch...",

    2. Navigate to Second ROM ZIP file
    (Keep it anywhere in External Memory Card Because you wont be able to access Internal Memory of your Phone via another ROM Recovery due to change of Partitions, All ROMs will be installed on Internal Memory),
    Choose ROM zip you want to patch, patch them

    3. Reboot again into boot menu (new ROM entry will be displayed), go into ROM - CWM to go into Recovery of the particular ROM,
    Now you are in Recovery of New ROM, Go to install ZIP (Installation of ROM) and
    navigate to the same folder where you kept the ROM ZIP file (on External Card Memory),
    you will find a new zip with appended name "patched.zip",
    chose these patched zip to install trough the Recovery,

    4. Flash C6902 fix, if u have C6902 Device (keep it On External Memory too),

    5. Boot into ROM then Do a REBOOT and again go to Secondary ROM - CWM

    6. Flash Gapps (keep it On External Memory too)

    7. Flash Any Mod or anything if you wanted to flash for Your ROM (keep it On External Memory too)
    Except Custom Kernels or Something that will wipe bootmenu.img ( Its WIP you can check out the Conversations on Page 48/49/50 )

    8. Do Reboot

    9. In Bootmenu Select the Newly installed ROM.

    You are done!
    Enjoy!

    Common Questions -
    1. How many ROMs I can Install?
    Answ - http://xdaforums.com/showpost.php?p=53236187&postcount=399

    2. How to go from One ROM Partation to Another ROM Partation via File Explorer?
    Answ - http://xdaforums.com/showpost.php?p=53318812&postcount=476

    3. How to get kernel.elf?
    Answ - http://xdaforums.com/showpost.php?p=53234909&postcount=384
    and http://xdaforums.com/showpost.php?p=53234988&postcount=386
    and http://xdaforums.com/showpost.php?p=53235075&postcount=387

    4. How to take Screenshot of CWM?
    Answ - http://xdaforums.com/showpost.php?p=53229901&postcount=358
    and http://xdaforums.com/showpost.php?p=53230193&postcount=362

    5. We get ROM updates now and then how do we do it? If we want to remove The Whole Multiboot Thing or a ROM from Bootmenu and to uninstall it completely from our phone then what is the procedure?
    Answ - http://xdaforums.com/showpost.php?p=53076327&postcount=277
    and http://xdaforums.com/showpost.php?p=53077937&postcount=281

    6. Stock Based ROMs ask to flash the Stripped FTF via flashtools in the END, if we keep Stock based ROMs as Secondary ROMs then how will it work then, it will wipe other ROMs Kernal and bootmenu kernal?
    Answ - Its Hard but http://xdaforums.com/showpost.php?p=53150024&postcount=325
    and http://xdaforums.com/showpost.php?p=53150187&postcount=326

    7. Power Off Charging?
    Answ - http://xdaforums.com/showpost.php?p=53144286&postcount=322

    8. The partition made by Multi Boot for other ROMs is very small, Why is that? Can it be increased?
    Answ - http://xdaforums.com/showpost.php?p=53116039&postcount=313
    and http://xdaforums.com/showpost.php?p=53118687&postcount=316
    and http://xdaforums.com/showpost.php?p=53118722&postcount=317

    9. I want to change the name of "mainrom" and Secondary ROM names in boot menu?
    Answ - http://xdaforums.com/showpost.php?p=53107296&postcount=307

    10. Gapps on Primary ROM?
    Answ - http://xdaforums.com/showpost.php?p=53027261&postcount=240

    11. Main ROM Update / MainROM Kernal Change?
    Answ - http://xdaforums.com/showpost.php?p=53565558&postcount=571
    15
    Credits

    - @abbychauhan first one who helped me in testing boot menu, thanks!
    - @krabappel2548 for kernel with kexec! I have used his kexec kernel in our boot menu for Z1, thanks!
    - @HypoTurtle for sugestions, thanks!
    - @DooMLoRD for opening my eyes since I had a wrong kernel on my local hard drive :eek:
    - @SafiXS , @Chocolatetrain, @ntmohammad ...sory if I forgot someone, thanks to all for testing!
    10
    New bootmenu is out! New principe (I think that is very easy now):

    - in no settings.ini (that mean - first time use) than boot into boot menu, chose zip of the your primary rom (make sure your main rom is installed from these zip), boot menu will install things needed for you to boot into your main rom! Simple when you done, reboot again into boot menu (now your main rom will be displayed in boot menu as a new entry, chose these menu to boot into your main rom. Easy? Ofcourse :D

    - if there is settings.ini and you allready have main rom installed or more than main rom, than simple chose submenu "patch...", select rom package you want to patch, bootmenu will patch them and will add new menuentru into settings.ini, will patch rom package, updater-script, all ramdisks from rom, will create zimage-dtb and initrd.gz, will create all file based partitions...etc. Reboot again into boot menu (now you have new menu entry added to the boot menu - patched rom), select them to boot, after led blink press volume keys to enter into cwm, install these modified rom package, you are done. Easy? Yes but I not deeply tested thing, but since new principe in our new version - you can look into multiboot.sh (main script for installing and patching roms!) try to fix or improve them, I will be glad if there get something improved! Let me know if you found something bad or better! Enjoy!

    WARNING:
    - there is possibility for your partitions of the main rom to get overwriten if multiboot.sh fail to patch these rom you going to patch, just to let you know! Two click solution is in testing stage so there is probably a lot of bugs! I am not responsible if you lost your private data! So guys if you willing to help, I am waiting. Things need to be improved in multiboot.sh !