[Galaxy Tab 4 Android Development] sub77:
Download

Changelog

MultiROM v33
=====================
* Updates for Android 6.0 compatibility

MultiROM v32a
=====================
* Fix pattern encryption password incorrectly reporting "invalid password"
when the pattern overlaps itself

MultiROM v32
=====================
* Minor GUI improvements
* Support for device encryption (with Android-based secondary ROMs only). See
FAQ in this device's XDA thread for more info.
* Bunch of ROM compatibility fixes

MultiROM v31
=====================
* Add support for "multimount" fstab (fixes CM12)
* Support interlaced PNGs (fixes wrongly rendered icons in boot manager, e.g.
the L icon)

MultiROM v30
=====================
* Fix logs generated by the "emergency reboot" screen, they were incomplete

MultiROM v29
=====================
* Implement "autoboot if no key pressed" mode - the boot manager won't show up
unless you hold down a volume down button during boot. Must be enabled in
recovery.
* Android 5.0 preview related tweaks

MultiROM v28
=====================
* Fix freezes in the boot manager
* You can now swipe between the tabs in the boot manager
* Minor UI adjustments
* SailfishOS support (for certain devices)

MultiROM v27
=====================
* Redesign the boot manager GUI. Looks much better now.
* Fix separate radio.img not working on Android L preview ROMs
* Fix issues with unaccessible /sdcard on Android L preview. Do NOT run
restorecon manually on /data/media, ever - it breaks MultiROM!
* Workaround bug which caused franco.Kernel on N5 to break secondary ROM's
boot
* Update Ubuntu Touch init scripts
* Use power+volume down (you have to press power first!) to save screenshots.
They are now PNG images and are saved to /sdcard/Pictures/Screenshots/.

MultiROM v26
=====================
* Fix boot into secondary ROM from the MultiROM Manager app broken in v25

MultiROM v25
=====================
* Add support for the Android L preview
* Misc F2FS fixes

MultiROM v24
=====================
* Add F2FS support
* Show icons in ROM list, configurable via MultiROM Manager app
* Improve compatibility with different ROMs and kernels when booting a ROM
from the Android app

MultiROM v23
=====================
* Fix compatibility with Ubuntu Touch rev 290 and higher. If your Ubuntu
installation won't boot, go to recovery and use "Re-patch init" option in
Advanced -> MultiROM -> List ROMs -> *ubuntu*.

MultiROM v22b
=====================
* Mount the real /data partition to folder /android/realdata in Ubuntu Touch,
enabling sharing data between Android and Ubuntu Touch. See
[url]http://bit.ly/ut_sharing[/url] for more info.

MultiROM v22a
=====================
* Fix hardware keys not working for some users
* Update Ubuntu Touch patches

MultiROM v22
=====================
* Fix linux-type ROMs (Ubuntu Touch) failing to boot for some users

MultiROM v21
=====================
* Revert "mount /system in secondary ROMs read-only" - if done so, SuperSU
breaks the boot.

MultiROM v20
=====================
* Support booting ROMs directly from Manager App
* Fix FCs on CyanogenMod-based ROMs
* Fix support for USB drives formatted with NTFS, broken in v17
* Mount /system in secondary ROMs read-only

MultiROM v19
=====================
* Implement "boot the last ROM" auto-boot type

MultiROM v18
=====================
* Fix silent-but-unpleasant crash with exFAT

MultiROM v17
=====================
* Changes to support MultiROM Manager app
* Add support for exFAT

MultiROM v16a
=====================
* Fix kexec not working on some kernels

MultiROM v16
=====================
* Add overscroll bounceback effect to rom list
* Add support for controling via physical keys
* Bunch of under-the-hood changes for mako and m7 support

MultiROM v15
=====================
* Fix cmdline handling for kexec, doesn't change anything for grouper, just to
have the same version for both flo and grouper (no need to update)

MultiROM v14
=====================
* Find and change correct fstab (fixes freezes on boot)
* Mount /realdata without nosuid (fixes no root on 4.1 and 4.2 ROMs)
* Use libbootimg to work with boot.img files

MultiROM v13
=====================
* Partial rewrite of the codebase to make it compatible with multiple devices
* Add run-on-boot scripts (for advanced users who know linux and bash, see
[url]https://github.com/Tasssadar/multirom/wiki/run-on-boot-scripts[/url])
* Use libbootimg to work with boot.img files

MultiROM v12a
=====================
* Detect kexec-hardboot patch in kernel even if /proc/config.gz is not
available

MultiROM v12
=====================
* Implement screen rotation and 1280x800 theme
* Fix auto-boot option
* Fix listview's fast scrollbar behavior

MultiROM v11
=====================
* Option to hide Internal ROM
* Option to rename Internal ROM
* Support for Ubuntu Touch

MultiROM v10
=====================
* Non-error message boxes aren't red now
* Add possibility to switch between several color themes, go to misc tab and
try it out
* New MultiROM installer format
* Add "discard" option to /data mounting
* Add battery status to misc tab (bottom right corner)
* Add brightness setting
* Implement ADB

MultiROM v9
=====================
* Make it compatible with LZ4 ramdisk compression
* Improve touch-related code. You should not get anymore phantom button
presses nor listview freezes

MultiROM v8
=====================
* Fix kexec-hardboot with new bootloader v4.18
* Search for already present USB drives on start
* Centre "MultiROM" title in main UI

MultiROM v7
=====================
* Correctly boot Ubuntu after recent kernel update. Read this post:
[url]http://xdaforums.com/showpost.php?p=37389003&postcount=1031[/url]
* Remove specific support for Ubuntu - it is now handled as "generic linux"
(with rom_info.txt file). Nothing should change for the users
* Sort ROMs alphabetically
* Add "progress dots" to USB screen, so that user knows that it is doing
something
* Recovery was also updated, don't forget to flash it

MultiROM v6
=====================
* Properly check for kexec-hardboot patch in kernel
* Internal" is always first in ROM list now, as originally intended
* Much more logging for kexec-related stuff
* Print last 50 lines of klog to "Emergency reboot" screen

MultiROM v5-2
=====================
* Fix ubuntu
* MultiROM still says it's v5. I did not change the version number because it
is literally one character fix.

MultiROM v5
=====================
* Support for ROMs with configuration file. This makes porting
Ubuntu/plasma/webos/anything much more easier. See the third post.
* MultiROM will no longer let you boot Ubuntu ROM if it's name contains
spaces, because the boot would fail.

MultiROM v4
=====================
* Fix GPS on ROMs other than Internal
* Minor UI changes

MultiROM v3
=====================
* Switch to Ubuntu 13.04. Version 12.10 is no longer supported
* Switch to kexec-hardboot based multi-booting. Read the first post.
* Add support for booting from USB drive
* MediaScanner no longer scans /sdcard/multirom, which means no useless
battery drain
* Recovery was updated, make sure to flash it, too.

MultiROM v2
=====================
* Add support for Ubuntu on 3G version of Nexus 7
* Fix some issues with 4.2 ROMs
* Recovery was updated, make sure to flash it, too.

MultiROM v1
=====================
* Initial version

Recoveries:

10.2.2016
=====================
* Fix ZIP selector being set to wrong storage after flashing ZIP to a
secondary ROM

9.2.2016
=====================
* Fix confusing "Unable to mount..." error message
* Fix flashing of some kernels into secondary ROMs (e.g. Elite kernel)

6.2.2016
=====================
* Update to TWRP 3.0.0 (big thanks to nkk71 for doing most of the work)
* Use Material theme made by z31s1g - thanks!
* Fixes for 6.0 compatibility
* Fixes for SuperSU compatibility. Use BETA 2.67-20160203160253 (
http://bit.ly/m_su ) or newer!

30.6.2015
=====================
* Update to TWRP 2.8.7
* Add option to duplicate secondary ROM into "Swap ROMs" sectio

6.4.2015
=====================
* Fix support for SuperSU 2.47 Beta and higher

28.3.2015
=====================
* Update to TWRP 2.8.6
* Added "restorecon" option to secondary ROMs (in MultiROM -> List ROMs),
should be used to fix broken SELinux contexts, which can be causing
bootloops of secondary ROMs
* Bunch of ROM compatibility fixes - recovery now uses entirely new way to
inject ZIP installation files, which should be much more robust and reliable
* Big ZIPs (> 450MB) are no longer permanently modified when flashed as
secondary ROMs
* Fix sideloading of big ZIP files (> 450MB) into secondary ROMs

12.2.2015
=====================
* Update to TWRP 2.8.5
* Fix support for ROMs containing a supersu.zip in their installation file
(e.g. AICP)

15.1.2015
=====================
* Fix "Swap ROMs" feature after the last update

14.1.2015
=====================
* Update to TWRP 2.8.4
* Lots of ZIP compatibility fixes (e.g. for CM 12)

15.11.2014
=====================
* Support for ZIP files which are using the new 'block_image_update' command
(e.g. SimpleAOSP ROM)

29.10.2014
=====================
* Update to TWRP 2.8.1

21.10.2014
=====================
* Update autoboot settings for MultiROM v29

14.9.2014
=====================
* Update with changes from 2.8.0.1 upstream version: fix a bug that causes
weird graphics glitches and touch issues

11.9.2014
=====================
* Update to TWRP 2.8.0
* Fix adding ROMs from backup to a FAT32 USB drives
* Remove "share kernel with internal?" from "Add ROM" page, there is usually
no reason to use it anymore and it might be confusing to figure out what it
actually does. You can still get the same behavior by clicking "Remove
boot.img" on the List ROMs -> *rom name* page.

21.8.2014
=====================
* Remove Ubuntu Touch installation, installing via recovery is deprecated
* Add SailfishOS installation (only for supported devices)

8.8.2014
=====================
* Show secondary ROM's name in the title bar while executing it's script (e.g.
during OTA update)
* Update Ubuntu Touch updater
* Fix failure to swap ROMs if it contains filenames starting with a dot
* Fix add ROM from a backup producing unbootable ROM with Android L preview
* Add option to remove radio.img from secondary ROMs
* Add config options for MultiROM v27

5.6.2014
=====================
* Update to TWRP 2.7.1
* Hide misleading "Mount: Unable to find partition for path '/data'" message
which appeared during secondary ROM installation, it is not _actually_ an
error.
* Fix installation of non-Android systems to USB drives

4.6.2014
=====================
* Fix installation of bigger (>350MB) ZIPs as secondary ROMs

28.5.2014
=====================
* Fix installation of Ubuntu Desktop

12.5.2014
=====================
* Fix crash during settings loading, causing a bootloop with certain settings

11.5.2014
=====================
* Add F2FS support
* Add tool to switch F2FS<->ext4 to Advanced menu
* Fix problems with backups introduced by TWRP 2.7.0

8.3.2014
=====================
* Update to TWRP 2.7.0
* Remove "save" button from MultiROM settings page, it is saved automatically
now
* Some rendering optimizations, resulting in noticeably higher FPS in recovery

2.2.2013
=====================
* Fix GPG signature verification of Ubuntu Touch installation files
* Add support for mice connected via USB-OTG
* Fixup scrollbar behaviour in file list

24.12.2013
=====================
* Fix installing ROMs to USB drive
* Fix ZIP verification
* Support ZIP verification for secondary ROMs

15.12.2013
=====================
* Support OTA updates on secondary ROMs (tested with omni)
* Add "Swap ROMs" feature
* Implement "boot the last ROM" auto-boot type
* Many bugfixes

10.11.2013 - 01
=====================
* Fix some mounting issues when using ntfs or exFAT

10.11.2013
=====================
* Add exFAT support
* Support system-image based Ubuntu Touch installation
* Support Ubuntu Touch OTA updates, if Ubuntu is installed
via MultiROM manager app

22.10.2013
=====================
* Fix SuperSU reporting "failed" when flashed to secondary ROM
and completely borking the MultiROM part for any subsequent
uses of "Flash ZIP" or "Backup" option

16.10.2013
=====================
* Automatically inject boot sector with MultiROM
after ZIP installation or ADB sideload. Can be
turned off on "confirm flash" or "ADB sideload"
pages.

12.10.2013
=====================
* Support 'adb sideload' when adding ROMs
* Support rotation while using custom recovery theme

5.10.2013
=====================
* Don't display unsupported systems in "Add ROM" menu

23.9.2013
=====================
* Use libbootimg to work with boot.img files

22.9.2013
=====================
* Fix custom theme support

19.9.2013
=====================
* Partial rewrite of the codebase to make it compatible with multiple devices
* Add option to backup secondary ROMs
* Don't show "Flash ZIP" option for Ubuntu Touch ROM, it is not an Android

13.9.2013
=====================
* Update to TWRP 2.6.3.0
* Fix Ubuntu desktop image decompression

30.8.2013
=====================
* Update to TWRP 2.6.1.0
* Temporarily removed Timur's USB kernel, because it is not
4.3-compatible and I can't find sources

25.8.2013
=====================
* Clean rebuild of the recovery, I probably forgot to do that last time
and it wouldn't boot on some tilapia devices. No function changes.

21.8.2013
=====================
* Fix updater-script incompatibilities for some ROMs (e.g. PAC-Man)

27.7.2013
=====================
* Fix deletion of 4.3 ROMs with new SuperSU version installed

24.7.2013
=====================
* Don't ignore format("/system"); when flashing ZIPs to secondary ROMs,
this should fix updating secondary ROMs, particulary from 4.2 to 4.3
* Some fixes for 4.3 ROMs
* Add "remove boot.img" option to Android ROMs

21.7.2013
=====================
* Fix crash when installing Android ROM with kernel sharing enabled

20.7.2013
=====================
* Add rotation option to MultiROM settings
* Properly handle kernel flashing for Android ROMs:
you can now flash kernel via "Flash ZIP" option in "List ROMs" menu,
Aroma installer should work properly
* Fix ZIP flashing for 3G version of Nexus 7

9.7.2013
=====================
* Update to TWRP 2.6.0.0
* Support for screen rotation, Settings -> Screen
* Support for Ubuntu Touch
* Added options from MultiROM v11 to hide or rename Internal ROM
* MultiROM Settings menu was reorganized
* MultiROM options added to landscape layout
* Recovery now has Timur's USB host kernel

16.4.2013
=====================
* Fix "Add ROM" option not properly installing /data partition from
backup, if the backup is bigger than 1.5gb
* Make names of ROMs created from Android Backup prettier

9.4.2013
=====================
* Update to TWRP 2.5.0.0

4.4.2013
=====================
* Add support for MultiROM installer format
* Add new MultiROM settings (brightness, adb)

12.3.2013
=====================
* Updated to TWRP 2.4.4.0
* Add support for LZ4 & LZMA ramdisk compression
* Add some handy buttons to "flash complete" page,
thanks ikslawlok for suggestion

2.3.2013
=====================
* Fix freeze when selecting ROM in "Add ROM" option
in MultiROM menu

1.3.2013
=====================
* Updated to TWRP 2.4.3.0

27.2.2013
=====================
* Fix recovery kernel, so that you can boot linux ROMs even if
kernel in internal memory has older kexec-hardboot patch
* Enable brightness settings from TWRP

26.2.2013
=====================
* Updated to TWRP 2.4.2.0
* Add fast scrollbar to fileselectors
* Voldown to turn off screen ("sleep" mode)

22.2.2013
=====================
* Fix Ubuntu Touch installation with
combination of 4.2 as Internal ROM

21.2.2013
=====================
* Don't copy the ZIP to RAM while flashing ZIPs bigger
than 450 MB (currently only Ubuntu touch) in "Add ROM"
or "Flash ZIP" options. This prevents crash which would appear
due to low memory, but also means that these ZIP files
will be modified, which makes them unusable outside MultiROM
after flashing.
* Add Ubuntu touch support

2.2.2013
=====================
* Update to TWRP 2.4.1.0
* Don't reset ROMs location in "List ROMs" when going back
from managing ROM to the ROM list
* Fix recovery crash when there is too deep directory structure
in /data, thanks rifraf for debugging this

30.1.2013
=====================
* Update to TWRP 2.4.0.0
* Properly disable flash-kernel during Ubuntu installation.
This is important fix, because without it, Ubuntu
can rewrite your boot.img.
* Add option to wipe /data, /cache and dalvik-cache
of secondary Android ROMs
* Use gnutar binary compiled specifically for tegra 3,
means faster installation of Ubuntu
* Add "pressed" effect to all buttons, so that you know
if you pressed it or not.
* When installing Android ROM from ZIP which does not have
boot.img (armoma installer...), try to use current boot sector
instead of boot.img. The ROM may not boot, so you should always
add boot.img which is compatible to the ZIP file.
* Update to keep up with MultiROM v7

20.12.2012
=====================
* Fix "Add ROM" for backups in internal memory
------------------------------------------
* Update TWRP to 2.3.3.0
* Add option to Add ROM from backups
* Should be able to flash ZIP files for both grouper and tilapia

18.12.2012
=====================
* Update to support MultiROM v3

2.12.2012
=====================
* Fix "flash zip" option for ROMs without whitespace in name. I've
accidentally broke it in previous update, sorry :/

29.11.2012
=====================
* Fix "flash zip" option for ROMs with whitespace in name

25.11.2012
=====================
* Add Ubuntu support for Nexus 7 3G

24.11.2012
=====================
* Initial version

FAQ and other notes

Device encryption

Since v32, MultiROM supports encryption on this device (it has to be added for each device separately). It works only with Android-based secondary ROMs and the secondary ROMs don't know the device is encrypted, so they would allow you to encrypt the device again - do not do that. If you're using password, pin or pattern for the encryption, MultiROM will ask you for the password on boot. If you're booting the primary ROM, then Android will ask you for the password _again_ - unfortunately, there is no way for me to pass the "unencrypted" status to Android. If you're booting secondary ROM, MultiROM will ask you for the password again after the reboot - that's because I have to unencrypt the /data partition after the ROM's kernel is loaded.

I could omit the second password prompt when booting secondary ROM by temporarily saving the password somewhere, but that's obviously unsafe. So is using encryption with unlocked device though, so I might add this later.​

About security

In order to make multi-booting possible, MultiROM has to sacrifice some security measures. Firstly, on secondary Android ROMs, /system is not mounted read-only. While there are other things preventing malicious software from messing with /system, this might potentialy make it easier for such software to attack that system.​

What do the ROMs share?

All ROMs are separate, except /sdcard, which is shared between all Android ROMs.​

How many ROMs can I have?/Where are the ROMs stored?

You can have as many ROMs as you can fit in your /sdcard. All the ROMs are stored in /sdcard/multirom/roms or on an USB drive. This folder is unaccessible in Android, to prevent mediascanner from scanning it. You can either in recovery, or obtain root and go to /data/media/0/multirom/roms.
​

Can I have different versions of Android working alongside

Yes. As long as you select "Don't shere kernel" when installing the secondary ROM, the systems are separated.​

MultiROM recovery says it's 2.6.3.0. Why isn't it updated to 2.6.3.*highernumber*?

It is, it just shows wrong version.​

The menu with all the ROMs won't show up during boot, how to fix it?

Either re-flash the MultiROM zip or go to recovery, Advanced -> MultiROM -> Inject curr. boot sector.

The reason for this is that something rewrote your boot.img, which happens for example when you flash a kernel. MultiROM's boot menu is part of the boot image, so it has to be added into it again.
​

Will you port MultiROM to device X?

No, probably. I won't port MultiROM to any device I don't own, because it is very difficult to provide the level of support I want to provide if I can't test things myself, as proven by the Nexus 4 port. I'd like to support more devices, but it is also very unsatisfying to work on code for device I don't have - I invest hours upon hours of time for free into it, and then I can't even see it running on the device, so...why..bother..?

I'll probably keep buying Nexus devices and keep porting MultiROM to those myself, but I can't buy every single device - I'm still a student, all my existing devices were bought using some kind of money grant or donations from users.

But, you can port it yourself, the wiki should give you at least some idea how to do that: https://github.com/Tasssadar/multirom/wiki/Porting-MultiROM
​