[MOD][07-08-2015][XMS] MultiRom v31x for Xperia M

Search This thread

aweosomeabhijeet

Senior Member
Oct 4, 2012
886
972
28
Jaipur
next2tech.net
xperia_m_gallery_04_1240x840_54cb66f6298d2cc2447.jpg


MultiROM is a one-of-a-kind multi-boot mod. It can boot any Android ROM as well as other systems like Ubuntu Touch, once they are ported to that device. Besides booting from device's internal memory, MultiROM can boot from USB drive connected to the device via OTG cable. The main part of MultiROM is a boot manager, which appears every time your device starts and lets you choose ROM to boot. You can see how it looks on the left image below and in gallery. ROMs are installed and managed via modified TWRP recovery. You can use standard ZIP files to install secondary Android ROMs and MultiROM even has its own installer system, which can be used to ship other Linux-based systems.

Features:
* Multiboot any number of Android ROMs
* Restore nandroid backup as secondary ROM
* Boot from USB drive attached via OTG cable

You can also watch a video which shows it in action.

WARNING

It is dangerous. This whole thing is basically one giant hack - none of these systems are made with multibooting in mind. It is no longer messing with data partition or boot sector, but it is possible that something goes wrong and you will have to flash factory images again. Make backups. Always.

IMPORTANT
1. I'm not responsible for anything, you do all this on your own risk.
2. Once you have flashed and set up MultiROM, don't flash another boot.img using fastboot or normally. Always go to "Advanced -> MultiROM" to flash ROMs/kernels or other mods.
3. If you want to uninstall MultiROM, just flash the MultiROM uninstaller.
4. I am not certainly sure about the compatibility with stock Roms, I still need to test this yet.
5. Your device must not be encrypted.
6. To all devs maintaing Stock-based ROMs: Feel free to use my patched stock kernels to add MultiROM support to your ROMs.
7. When booting another ROM, you'll notice that in some cases, you can enter the recovery of the boot.img of the ROM. Please don't use it, flash everything using MultiROM TWRP.
INSTALLATION
1. Make sure you are on a rom compatible with these kernels.
2. Flash the required kernel zip.
3. Flash MultiROM_TWRP-xx-xx-xxxx.img on fota partition.
4. Flash MultiRom_xx-xx-xxxx-v31x.zip
5. Done1
Adding ROMs
Go to recovery, select Advanced -> MultiROM -> Add ROM. Select the ROM's zip file and confirm.
Using USB drive
During installation, recovery lets you select install location. Plug in the USB drive, wait a while and press "refresh" so that it shows partitions on the USB drive. You just select the location (extX, NTFS and FAT32 partitions are supported) and proceed with the installation.
If you wanna use other than default FAT32 partition, just format it in PC. If you don't know how/don't know where to find out how, you probably should not try installing MultiROM.
If you are installing to NTFS or FAT32 partition, recovery asks you to set image size for all the partitions - this cannot be easilly changed afterward, so choose carefully. FAT32 is limited to maximum of 4095MB per image - it is limitation of the filesystem, I can do nothing about that.
Installation to USB drives takes a bit longer, because the flash drive is (usually) slower and it needs to create the images, so installation of Ubuntu to 4Gb image on my pretty fast USB drive takes about 20 minutes.
Enumerating USB drive can take a while in MultiROM menu, so when you press the "USB" button in MultiROM, wait a while (max. 30-45s) until it searches the USB drive. It does it by itself, no need to press something, just wait.
Updating/changing ROMs

1. Primary ROM (Internal)
  • Flash ROM's ZIP file as usual, do factory reset if needed (it won't erase secondary ROMs).
  • Go to Advanced -> MultiROM in recovery and do Inject curr. boot sector.

2. Secondary Android Rom

If you want to change the ROM, delete it and add new one. To update ROM, follow these steps:

  • Go to Advanced -> MultiROM -> List ROMs and select the ROM you want to update.
  • Select "Flash ZIP" and flash ROM's ZIP file.

SOURCEs

CREDITs
  • Tasssadar
  • Alvinhochun - without his kexec patch, it would have been impossible for me, kudos to him :highfive:
  • Xperia Multirom
  • Myself5
  • Every other dev behind this

If you think my work is good, please consider a small donation​


You might want to consider a Donation to Tasssadar, who is the Mastermind behind all of this, I just ported it to the M​


XDA:DevDB Information
MultiRom for Xperia M, Tool/Utility for the Sony Xperia M

Contributors
aweosomeabhijeet, alvinhochun, XperiaMultirom
Source Code: https://github.com/XperiaMultiROM/multirom/


Version Information
Status: Stable
Current Stable Version: v31x
Stable Release Date: 2015-08-13

Created 2015-08-07
Last Updated 2015-08-13
 

Attachments

  • mrom_screenshot_001.png
    mrom_screenshot_001.png
    15.2 KB · Views: 2,330
  • Screenshot_2015-08-06-10-45-45.png
    Screenshot_2015-08-06-10-45-45.png
    27.8 KB · Views: 2,271
  • Screenshot_2015-08-06-10-47-49.png
    Screenshot_2015-08-06-10-47-49.png
    36.3 KB · Views: 2,260
Last edited:

aweosomeabhijeet

Senior Member
Oct 4, 2012
886
972
28
Jaipur
next2tech.net
Last edited:

itsnie

Senior Member
Mar 24, 2014
936
215
Use sdcard class 10 to boot cm11, run very smoothly :D

Great work, thang's .. :D

Sent from my waifu
 

Agu_Ra

Senior Member
Jun 24, 2014
949
1,591
29
Lviv
@aweosomeabhijeet, to prevent compatibility issues that may occur it will be better to use boot image repacking script (e.g. with unpackbootimg and mkbootimg utilities) that will inject new zImage (it is kernel file in your out/target/product/nicki folder) in boot image than flashing raw boot.img, so ramdisk will not be overridden (as far as I understand we don't need changes in ramdisk for kexec, do we? and even if we do, it will be better to replaced only changed files, not the whole ramdisk). Noel Macwan uses that thing in his kernels, I used his script as base for my old injecting CWM/TWRP script.

---------- Post added at 21:26 ---------- Previous post was at 20:57 ----------

BTW, what kernel sources did you use for your kexec-patched kernel? Are they Sony stock ones? Aren't they from CM12.1 repo?
 
Last edited:

kjinx01

Senior Member
Jun 16, 2014
374
150
SUCCESS

so today i successfully flashed 3 roms on in XMD which run smoothly..the only problem i faced is patience when flashed through recovery i in usbdisk (which is obvious)..so now i dont need to wipe or format my primary rom in oder to test other builds..fabulous job @aweosomeabhijeet
Now mutlirom thread is active almost after one and half year for our xperia m...
All credits to u...
 

aweosomeabhijeet

Senior Member
Oct 4, 2012
886
972
28
Jaipur
next2tech.net
@aweosomeabhijeet, to prevent compatibility issues that may occur it will be better to use boot image repacking script (e.g. with unpackbootimg and mkbootimg utilities) that will inject new zImage (it is kernel file in your out/target/product/nicki folder) in boot image than flashing raw boot.img, so ramdisk will not be overridden (as far as I understand we don't need changes in ramdisk for kexec, do we? and even if we do, it will be better to replaced only changed files, not the whole ramdisk). Noel Macwan uses that thing in his kernels, I used his script as base for my old injecting CWM/TWRP script.

---------- Post added at 21:26 ---------- Previous post was at 20:57 ----------

BTW, what kernel sources did you use for your kexec-patched kernel? Are they Sony stock ones? Aren't they from CM12.1 repo?
Indeed a very good idea, but I am worried about pure stock users. I think the script won't work, though I haven't tried.

They are from CM repo only, I am fixing some issues will push changes to my fork of CM kernel.
 
  • Like
Reactions: AndyPhoenix9879

Agu_Ra

Senior Member
Jun 24, 2014
949
1,591
29
Lviv
Indeed a very good idea, but I am worried about pure stock users. I think the script won't work, though I haven't tried.

They are from CM repo only, I am fixing some issues will push changes to my fork of CM kernel.
We can make different zip for pure stock and for custom ROMs. But is now MR working on stock? Doesn't it have split screen bug? If yes, you should try using custom recovery graphics, and I am not familiar to C, so can't help. And BTW does stock work with CM kernel? I very doubt it. Even if it will work with stock ramdisk and CM zImage (which I doubt too, as CM kernel is built on CAF sources with some changes from stock kernel if I'm not wrong), it surely won't work with full CM boot image, so repacking script will be the best solution (I can even make it for you today if changes in initrd are not needed). And if stock will boot with CM zImage we will not have screen split bug anymore, and script also should work even with stock (as the command line is the same, and even if not, we can read it from unpackbootimg output by using `cat *.img-cmdline` for command line value in script). But building different kernels for stock and custom ROMs (all custom ROMs for our device share the same kernel source, difference is only in ramdisk, you can even boot CM11 with CM12.1 kernel if you will keep CM11's ramdisk) is better solution.
 

aweosomeabhijeet

Senior Member
Oct 4, 2012
886
972
28
Jaipur
next2tech.net
We can make different zip for pure stock and for custom ROMs. But is now MR working on stock? Doesn't it have split screen bug? If yes, you should try using custom recovery graphics, and I am not familiar to C, so can't help. And BTW does stock work with CM kernel? I very doubt it. Even if it will work with stock ramdisk and CM zImage (which I doubt too, as CM kernel is built on CAF sources with some changes from stock kernel if I'm not wrong), it surely won't work with full CM boot image, so repacking script will be the best solution (I can even make it for you today if changes in initrd are not needed). And if stock will boot with CM zImage we will not have screen split bug anymore, and script also should work even with stock (as the command line is the same, and even if not, we can read it from unpackbootimg output by using `cat *.img-cmdline` for command line value in script). But building different kernels for stock and custom ROMs (all custom ROMs for our device share the same kernel source, difference is only in ramdisk, you can even boot CM11 with CM12.1 kernel if you will keep CM11's ramdisk) is better solution.
Actually you are getting it wrong!
1. We would not have any screen shift bug
2. Every ROM we boot from multirom can use it's own kernel irrespective of what kernel is installed in the device. (That's the benefit of kexec-hardboot)
3. I have a better idea for maintaing stock and all. Will upload new zip soon. I would like to use parts of your script if you don't mind.
 

Agu_Ra

Senior Member
Jun 24, 2014
949
1,591
29
Lviv
BTW, why didn't you git clone kernel repository (it would save commit history and make your fork git-compatible with original) and then apply your patches? Otherwise, it will be harder to support your patched kernel, as it has another commit history and you if I am not wrong will not be able to merge and cherry-pick commits from CM kernel to your kernel, you will have to do it manually, which is quite annoying, or leave your kernel unupdated in future.

---------- Post added at 15:49 ---------- Previous post was at 15:45 ----------

Actually you are getting it wrong!
1. We would not have any screen shift bug
2. Every ROM we boot from multirom can use it's own kernel irrespective of what kernel is installed in the device. (That's the benefit of kexec-hardboot)
3. I have a better idea for maintaing stock and all. Will upload new zip soon. I would like to use parts of your script if you don't mind.
Seems that we misunderstand each other. I talk about using other ROMs as primary, not only CM. We can do this by using kexec-ed kernel. I just offer you another method installing it, which will keep original ramdisk (if kexec doesn't need changes in it) and only replace kernel itself (zImage only, not boot image).
And I don't mind using parts of this script.
 

aweosomeabhijeet

Senior Member
Oct 4, 2012
886
972
28
Jaipur
next2tech.net
BTW, why didn't you git clone kernel repository (it would save commit history and make your fork git-compatible with original) and then apply your patches? Otherwise, it will be harder to support your patched kernel, as it has another commit history and you if I am not wrong will not be able to merge and cherry-pick commits from CM kernel to your kernel, you will have to do it manually, which is quite annoying, or leave your kernel unupdated in future.

---------- Post added at 15:49 ---------- Previous post was at 15:45 ----------


Seems that we misunderstand each other. I talk about using other ROMs as primary, not only CM. We can do this by using kexec-ed kernel. I just offer you another method installing it, which will keep original ramdisk (if kexec doesn't need changes in it) and only replace kernel itself (zImage only, not boot image).
And I don't mind using parts of this script.
I know it. I have forked the repo and currently cloning. It's just in beta status and is just for giving details about the patch. I'll soon be on CM kernel and would merge all its commits and kernel would be updated always.
Don't you worry about it, I have all in mind. It takes time, I am free majorly on weekends so I won't rush on things.

I understand this and I have already made installer zip which does exactly what you are trying to tell, it uses parts of your script to replace just zImage and not whole boot.img. I still have something better coming. Just wait for few days.
 
Last edited:
  • Like
Reactions: itsnie and Agu_Ra

Agu_Ra

Senior Member
Jun 24, 2014
949
1,591
29
Lviv
I know it. I have forked the repo and currently cloning. It's just in beta status and is just for giving details about the patch. I'll soon be on CM kernel and would merge all its commits and kernel would be updated always.
Don't you worry about it, I have all in mind. It takes time, I am free majorly on weekends so I won't rush on things.

I understand this and I have already made installer zip which does exactly what you are trying to tell, it uses parts of your script to replace just zImage and not whole boot.img. I still have something better coming. Just wait for few days.
Okay, that's nice. Sorry if I was too annoying.
 

kjinx01

Senior Member
Jun 16, 2014
374
150
It's not a order or request.. A small advice or suggestions.. Can you overclock ur kernel for more smoothness
 

manoj36

Senior Member
Mar 30, 2014
418
53
30
banglore
Hey bro why does it take so long time to flash in recovery.. Any rom on sdcard takes abt 10 min to get flashed..??
 

Top Liked Posts

  • There are no posts matching your filters.
  • 18
    xperia_m_gallery_04_1240x840_54cb66f6298d2cc2447.jpg


    MultiROM is a one-of-a-kind multi-boot mod. It can boot any Android ROM as well as other systems like Ubuntu Touch, once they are ported to that device. Besides booting from device's internal memory, MultiROM can boot from USB drive connected to the device via OTG cable. The main part of MultiROM is a boot manager, which appears every time your device starts and lets you choose ROM to boot. You can see how it looks on the left image below and in gallery. ROMs are installed and managed via modified TWRP recovery. You can use standard ZIP files to install secondary Android ROMs and MultiROM even has its own installer system, which can be used to ship other Linux-based systems.

    Features:
    * Multiboot any number of Android ROMs
    * Restore nandroid backup as secondary ROM
    * Boot from USB drive attached via OTG cable

    You can also watch a video which shows it in action.

    WARNING

    It is dangerous. This whole thing is basically one giant hack - none of these systems are made with multibooting in mind. It is no longer messing with data partition or boot sector, but it is possible that something goes wrong and you will have to flash factory images again. Make backups. Always.

    IMPORTANT
    1. I'm not responsible for anything, you do all this on your own risk.
    2. Once you have flashed and set up MultiROM, don't flash another boot.img using fastboot or normally. Always go to "Advanced -> MultiROM" to flash ROMs/kernels or other mods.
    3. If you want to uninstall MultiROM, just flash the MultiROM uninstaller.
    4. I am not certainly sure about the compatibility with stock Roms, I still need to test this yet.
    5. Your device must not be encrypted.
    6. To all devs maintaing Stock-based ROMs: Feel free to use my patched stock kernels to add MultiROM support to your ROMs.
    7. When booting another ROM, you'll notice that in some cases, you can enter the recovery of the boot.img of the ROM. Please don't use it, flash everything using MultiROM TWRP.
    INSTALLATION
    1. Make sure you are on a rom compatible with these kernels.
    2. Flash the required kernel zip.
    3. Flash MultiROM_TWRP-xx-xx-xxxx.img on fota partition.
    4. Flash MultiRom_xx-xx-xxxx-v31x.zip
    5. Done1
    Adding ROMs
    Go to recovery, select Advanced -> MultiROM -> Add ROM. Select the ROM's zip file and confirm.
    Using USB drive
    During installation, recovery lets you select install location. Plug in the USB drive, wait a while and press "refresh" so that it shows partitions on the USB drive. You just select the location (extX, NTFS and FAT32 partitions are supported) and proceed with the installation.
    If you wanna use other than default FAT32 partition, just format it in PC. If you don't know how/don't know where to find out how, you probably should not try installing MultiROM.
    If you are installing to NTFS or FAT32 partition, recovery asks you to set image size for all the partitions - this cannot be easilly changed afterward, so choose carefully. FAT32 is limited to maximum of 4095MB per image - it is limitation of the filesystem, I can do nothing about that.
    Installation to USB drives takes a bit longer, because the flash drive is (usually) slower and it needs to create the images, so installation of Ubuntu to 4Gb image on my pretty fast USB drive takes about 20 minutes.
    Enumerating USB drive can take a while in MultiROM menu, so when you press the "USB" button in MultiROM, wait a while (max. 30-45s) until it searches the USB drive. It does it by itself, no need to press something, just wait.
    Updating/changing ROMs

    1. Primary ROM (Internal)
    • Flash ROM's ZIP file as usual, do factory reset if needed (it won't erase secondary ROMs).
    • Go to Advanced -> MultiROM in recovery and do Inject curr. boot sector.

    2. Secondary Android Rom

    If you want to change the ROM, delete it and add new one. To update ROM, follow these steps:

    • Go to Advanced -> MultiROM -> List ROMs and select the ROM you want to update.
    • Select "Flash ZIP" and flash ROM's ZIP file.

    SOURCEs

    CREDITs
    • Tasssadar
    • Alvinhochun - without his kexec patch, it would have been impossible for me, kudos to him :highfive:
    • Xperia Multirom
    • Myself5
    • Every other dev behind this

    If you think my work is good, please consider a small donation​


    You might want to consider a Donation to Tasssadar, who is the Mastermind behind all of this, I just ported it to the M​


    XDA:DevDB Information
    MultiRom for Xperia M, Tool/Utility for the Sony Xperia M

    Contributors
    aweosomeabhijeet, alvinhochun, XperiaMultirom
    Source Code: https://github.com/XperiaMultiROM/multirom/


    Version Information
    Status: Stable
    Current Stable Version: v31x
    Stable Release Date: 2015-08-13

    Created 2015-08-07
    Last Updated 2015-08-13
    13
    DOWNLOADS
    Kernels with kexec-hardboot support :

    XMS-stock-Kexec.zip(To be flashed in recovery)(not yet tested)
    XMD-stock-Kexec.zip(To be flashed in recovery)(not yet tested)
    XM_CM_kexec-08-13-2015.zip(has touch screen issue)

    Other kernels with kexec-hardboot support:

    MultiROM TWRP :

    recovery.img(To be flashed on fota-partition)

    MultiROM-zip :

    multirom-20150813-v31x-UNOFFICIAL-nicki.zip(To be flashed in recovery)
    9
    BUGs
    NO BUGS as of now

    LIMITATIONs
    1. For MTP to work in TWRP you need to disable and enable it again.

    CHANGELOG :
    Code:
    2015-08-13
    Stable release!
    Fixed minor touch issues present in the kernel by ngxson@git !
    
    2015-08-07
    Beta version
    Fixed erasing primary rom with secondary
    Fixed wifi
    
    2015-08-07
    Initial release!
    2
    SUCCESS

    so today i successfully flashed 3 roms on in XMD which run smoothly..the only problem i faced is patience when flashed through recovery i in usbdisk (which is obvious)..so now i dont need to wipe or format my primary rom in oder to test other builds..fabulous job @aweosomeabhijeet
    Now mutlirom thread is active almost after one and half year for our xperia m...
    All credits to u...
    2
    Just curious, where you install tipsy (internal, sdcard or usb)? And what file system you used? Also if you used vfat, how much size you give for each partition? I'll try all over again with same settings as yours. Thanks

    Sent from my C1905

    @madper @manoj36
    i too flashed tipsy rom on USB adn it worked charm
    everything was given as default as provided in multirom