****************************************************************************************************
ORYGINALNY TEMAT NA XDA
[MOD][FEB 10] MultiROM v33 | Google Nexus 5 | XDA Forums
****************************************************************************************************
Wstęp
MultiROM jest jedynym w swoim rodzaju modem dla Nexusa 5. Umożliwia uruchomienie każdego ROMu Android jak również innych systemów jak Ubuntu Touch, Plasma Active, Bohdi Linux lub port WebOS'a. Oprócz uruchamiania systemu z pamięci wewnętrznej, MultiROM umożliwia to także z podłączonej pamięci USB kabelkiem OTG. Główną częścią MutliROMu jest jego boot manager, który pojawia się za każdym razem kiedy uruchamiasz urządzenie i umożliwia wybór systemu jaki ma się uruchomić. ROMy są instalowane oraz zarządzane zmodyfikowany recovery TWRP. Możesz używać standardowych plików ZIP do flaszowania ROMów jako drugie, jak również codziennie kompilowanych obrazów Ubuntu Touch. MultiROM e ma również swój własny system instalacyjny, którym możesz wrzucić inny system na bazie Linuxa.
Funkcje:
* Multiboot dowolnej ilości ROMów
* Przywracanie backupów nandroid backup jako drugi ROM
* Używaj np Ubuntu Touch lub Desktop jednocześnie z Androidem, bez potrzeby formatowania urządzenia
* uruchamianie systemu z USB podpiętego kablem OTG
Uwaga!
To_jest_niebezpieczne. To całe coś, jest jednym wielkim hackiem - żaden z tych systemów nie został stworzony do pracy multiboot. Polega to na mieszaniu z boot sectorem oraz partycjami data. Dalej już mieszania z partycjami data i boot sectorem nie ma, ale zawsze istnieje ryzyko, że coś pójdzie nie tak i będziesz musiał flaszować fabryczne obrazy. Dlatego zawsze rób kopie zapasowe. Zawsze.
Instalacja
1. Poprzez aplikację MultiROM Manager
To jest najłatwiejsza metoda, dzięki której zainstalowane zostanie wszystko co potrzebne.
Zainstaluj tą aplikację i wybierz MultiROM i recovery w zakładce Install/Update. Jeśli zakładka Status mówi Kernel: doesn't have kexec-hardboot patch! na czerwono, musisz także zainstalować spatchowany kernel - bądź wybierz któryś z zakładki Install/Update lub wybierz jakiś z XDA. Wybierasz kernel dla Twojego głównego ROMu, nie dla żadnego innego (przyszłego) drugiego ROMu, więc wybierz prawidłową wersję.
Naciśnij "Install" w zakładce Install/Update by zacząć instalację.
2. Ręczna instalacja
Najpierw, na Youtube są filmiki. Jeśli chcesz, szukaj po frazie "MultiROM installation" i obejrzyj, wielkie podziękowania tym, którzy je zrobili. Jest także
świetny artykuł na Linux Journal.
Info 1: Twoje urządzenie nie może być zaszyfrowane (podpowiedź: jeśli nie wiesz co to znaczy, to znaczy, że nie jest zaszyfrowany).
MultiROM ma 3 części, które musisz zainstalować:
MultiROM (multirom-YYYYMMDD-vXX-hammerhead.zip) - ściągnij ZIP i sflaszuj w recovery.
Zmodyfikowane recovery (TWRP_multirom_hammerhead_YYYYMMDD.img) - ściągnij plik IMG i użyj fastboot lub
aplikacji Flashify , aby sflaszować.
Spatchowany kernel - Możesz użyć któregoś ze standardowych lub jakiś zewnętrzny, który jest już spatchowany. Ściągnij ZIP i sflaszuj w recovery.
Twój bieżący ROM nie zostanie usunięty podczas instalacji.
Dodawanie ROMów
1. Android
Idź do recovery, wybierz Advanced -> MultiROM -> Add ROM. Wybierz ZIP z ROMem i potwierdź. Jeśli chodzi o miejsce, czysta instalacja stocka podczas pikerwszego uiruchomienia (z generowanie dalvik cache i podpiętmy kontem Google) zajmuje jakieś 676MB.
2. Ubuntu Touch
Użyj
aplikacji MultiROM Manager , aby zainstalować Ubuntu Touch.
Ubuntu Touch jest w trakcie developmentu - MultiROM musi być aktualne, aby być zgodne z funkcjami w Ubuntu, więc jest szansa, że ta metoda przestanie działać po jakimś czasie i będę musiał to naprawić.
3. Firefox OS
Firefox OS jest kolejnym systemem Android z punktu widzenia MultiROMa, więc pobierz ZIP z
wątku Firefox OS i dodaj go tak jak by to był zwykły Android
4. SailfishOS
Pobierz CyanogenMod i SailfishOS ZIP
jak opisano to na stronie Wiki Sailfish . Potrzebujesz wersji alpha2 (20140810) albo nowszej!
Umieść ZIPy CM Sailfish w pamięci telefonu.
Restart do recovery
Advanced -> MultiROM -> Add ROM
Wybierz "SailfishOS" jako typ ROMu. IInstalacja na USB nie jest wspierana, więc zostaw lokację instalacji tak jak jest. Kliknij Next.
Wybierz najpierw ZIP CyanogenMod i następnie ZIP SailfishOS. Kliknij install.
Skieruj się do wątku SailfishOS dla więcej informacji: http://forum.xda-developers.com/goog...alpha-t2841266
Używanie USB
Podczas instalacji, recovery umożliwia Ci wybranie lokalizacji instalacji. Podłącz USB, poczekaj chwilę i wciśnij "refresh" i wyświetlą się partycje na USB. Możesz wybrać lokację (obsługiwane są partycje extX, NTFS i FAT32) i kontynuować instalację.
Jeśli chcesz wybrać partycję inną niż domyślna FAT32, po prostu sformatuj ją w PC. Jeśli nie wiesz jak/nie wiesz gdzie znaleźć jak to zrobić, może lepiej nie instaluj MultiROM.
Jeśli instalujesz na partycji NTFS lub FAT32, recovery zapyta Cię o rozmiar wszystkich partycji - to nie możezostać tak łatwo zmienione później, więc wybierz uważnie. FAT32 ma ograniczenie na max rozmiar 4095MB na obraz - jest to ograniczenie wynikające z systemu plików, nie mogę z tym nic więcej zrobić.
Instalacja na USB trwa zazwyczaj trochę dłużej, ponieważ pamięci flash są (przeważnie) wolniejsze i proces tworzenia wszystkiego jest dłuższy, więc instalacja Ubuntu na moim 4GB dość szybkim pendrive zajmuje jakieś 20 minut.
Wyświetlanie pamięci USB może trochę potrwać w menu MultiROM, więc kiedy naciśniesz przycisk "USB" w MultiROM, poczekaj chwilę (max. 30-45s) aż znajdzie pamięć USB. Sam to znajdzie, nie musisz nic więcej naciskać ani nic podobnego, po prostu czekaj.
Aktualizacja/zmiana ROMów
1. Główny ROM (Internal)
Sflaszuj ZIP z ROMem jak zwykle, wykonaj factory reset, jeśli jest to wymagane (nie wyczyści to drugiego ROMu)
Idź do Advanced -> MultiROM w recovery i wykonaj Inject curr. boot sector.
2. Kolejne ROMy Android
Jeśli chcesz zmienić ROM, usuń go i dodaj nowy. Chcąc zaktualizować ROM, wykonaj poniższe kroki:
Idź do Advanced -> MultiROM -> List ROMs i wybierz ROM, który chcesz zaktualizować.
Wybierz "Flash ZIP" i sflaszuj ZIP z ROMem.
W niektórych przypadkach musisz także sflaszować spatchowany kernel - pobierz właściwy kernel i sflaszuj go na tym ROMie tak samo jak flaszujesz ROMy.
Wyjaśnienie menu recovery
Main menu
- Add ROM - dodaj ROM do uruchamiania
- List ROMs - wyświetl listę ROMów i zarządzaj nimi
- Inject boot.img file - Jeśli ściągniesz jakiś kernel w postaci boot.img (np. franco kernel), musisz użyć tej opcji na nim. w innym przypadku stracisz MultiROM.
- Inject curr. boot sector - Użyj tej opcji, jeśli MultiROM nie pokazuje się podczas bootowania, np po instalacji kernela.
- Settings - cóż, ustawienia.
Manage ROM
- Rename, delete - Wierzę, że to oczywiste
- Flash ZIP (tylko ROMy Android) - flaszowanie ZIP do ROMu, np GApps
- Add/replace boot.img - zastępuje boot.img używany przez ROM, to jest bardziej developerska opcja
- Re-patch init - to jest dostępne tylko dla Ubuntu. Użyj tego kiedy ubuntu nie może znaleźć partycji root, np po upgradzie apt-get, który zmienia skrypt init.
Kod źródłowyMultiROM - https://github.com/Tasssadar/multirom/tree/master (branch master)
Zmodyfikowane TWRP - https://github.com/Tasssadar/Team-Win-Recovery-Project (branch master)
Kernel z kexec-hardboot patch - https://github.com/Tasssadar/android....4-kk-r1-kexec
Pobieranie
1. Główne pobieranie
MultiROM:
multirom-20160207-v33-hammerhead.zip Zmodyfikowane recovery (na bazie TWRP):
TWRP_multirom_hammerhead_20160210.img Aplikacja MultiROM Manager:
Google Play lub
link to APK Kernel w/ kexec-hardboot patch (Stock 4.4):
kernel_kexec_hammerhead_440.zip Kernel w/ kexec-hardboot patch (Stock 4.4.1 and 4.4.2):
kernel_kexec_hammerhead_441.zip Kernel w/ kexec-hardboot patch (Stock 4.4.3 and 4.4.4):
kernel_kexec_hammerhead_443.zip Kernel w/ kexec-hardboot patch (Stock L preview):
kernel_kexec_hammerhead_L.zip Kernel w/ kexec-hardboot patch (Stock 5.0 preview (LPX13D)):
kernel_kexec_hammerhead_50_lpx13d.zip Kernel w/ kexec-hardboot patch (Stock 5.0 and 5.0.1):
kernel_kexec_hammerhead_50_final.zip Kernel w/ kexec-hardboot patch (Stock 5.1):
kernel_kexec_hammerhead_510.zip Kernel w/ kexec-hardboot patch (Stock 5.1.1):
kernel_kexec_hammerhead_511-2.zip Kernel w/ kexec-hardboot patch (Stock 6.0 and 6.0.1):
kernel_kexec_hammerhead_601.zip Kernel w/ kexec-hardboot patch (CM 11 (4.4 - 4.4.2)):
kernel_kexec_hammerhead_cm11-9-3d91a2d569.zip Kernel w/ kexec-hardboot patch (CM 11 (4.4.3 - 4.4.4)):
kernel_kexec_hammerhead_cm11-12-7d4eef09ee.zip Kernel w/ kexec-hardboot patch (CM 12.0):
kernel_kexec_hammerhead_cm12-1-10f4294a6b.zip Kernel w/ kexec-hardboot patch (CM 12.1):
kernel_kexec_hammerhead_cm121-01-47b35a93b8.zip Kernel w/ kexec-hardboot patch (CM 13.0):
kernel_kexec_hammerhead_cm13-01-2c39db662.zip Musisz mieć kernel z kexec-hardboot patch tylko na głównym ROMie!
Mirror:
http://d-h.st/users/tassadar
2. zewnętrzne kernele z kexec-hardboot patch
franco.Kernel (r21 and newer) -
http://forum.xda-developers.com/show....php?t=2508284 Chaos -
http://forum.xda-developers.com/show....php?t=2551441 ElementalX -
http://forum.xda-developers.com/show....php?t=2519607 Łaskawie zapytaj swojego developera kernela o dodanie
kexec-hardboot patch .
3. Deinstalator
Deinstalator MultiROM:
multirom_uninstaller-hammerhead-2.zip Sflaszuj tego ZIPa, aby usunąć MultiROM z urządzenia. To wyczyści wszystkie Twoje kolejne ROMy. Jeśli nie chcesz menu MultiROM w recovery, przeflaszuj
czyste TWRP , ale nie jest to wymagane - te menu nie robią nic, jeśli MultROM nie jest zainstalowany.
4. Flaszowalnme ZIPy z obrazami fabrycznymi
Przeważnie udostępniam flaszowalne ZIPy bazując na nowych obrazach Google, wieć możesz mieć czysty stockowy ROM jako kolejny ROM w MultiROM. ZIPy nie są zrootowane ani nie modyfikowane, poza małymi tweakami umożliwiającymi ich zrootowanie poprzez SuperSU. Możesz je znaleźć w folderze
na basketbuild lub
dev-host .
Changelog
MultiROM v33
=====================
* Updates for Android 6.0 compatibility
MultiROM v32c
=====================
* Add support for Android M preview (MPZ44Q). SuperSU 2.46 doesn't work on M
and breaks boot - don't flash it!
MultiROM v32b
=====================
* Fix pattern encryption password incorrectly reporting "invalid password"
when the pattern overlaps itself
MultiROM v32a
=====================
* Fix support for separate radio.img with secondary kitkat ROMs
MultiROM v32
=====================
* Minor GUI improvements
* Support for device encryption (with Android-based secondary ROMs only, for
AOSP encryption only - does not work with CAF-based CyanogenMod as primary
ROM). See FAQ in this device's XDA thread for more info.
* Bunch of ROM compatibility fixes
MultiROM v31
=====================
* Add support for "multimount" fstabs
* 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
=====================
* You can now swipe between the tabs in the boot manager
* Minor UI adjustments
MultiROM v27a
=====================
* Fix freezes in the boot manager
* Add support for SailfishOS
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
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 v22c
=====================
* Fix graphics corruption with some custom kernels
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"][TUT] Sharing data between android and ubunt… | Ubuntu Touch | XDA Forums[/URL] for more info.
MultiROM v22a
=====================
* Add support for ROMs with DTB only as separate blob in boot.img (AOKP)
MultiROM v22
=====================
* Fix Ubuntu Touch boot taking long time
* Fix Ubuntu Touch freezing on Google logo for some users
MultiROM v21a
=====================
* Add support for testing builds of Ubuntu Touch (see XDA thread, post #323)
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
=====================
* Initial version
Recovery:
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.
12.8.2014 - 1
=====================
* Fix 'Flash ZIP' function for Android ROMs, broken by a typo in previous
version
11.8.2014
=====================
* Remove Ubuntu Touch installation, installing via recovery is deprecated
* Add SailfishOS installation
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.
4.6.2014
=====================
* Fix installation of bigger (>350MB) ZIPs as secondary ROMs
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
27.2.2014
=====================
* Support for system-image based (from the Manager app) Ubuntu Touch
installation
* Fix time in recovery
* Some rendering optimizations, resulting in noticeably higher FPS in recovery
4.2.2014
=====================
* Update to support latest Ubuntu Touch testing builds
* Fix date and time in recovery
* Add support for mice connected via USB-OTG
* Fixup scrollbar behaviour in file list
26.1.2014
=====================
* Fix radio in Ubuntu Touch
24.12.2013
=====================
* Fix installing ROMs to USB drive
* Fix ZIP verification
* Support ZIP verification for secondary ROMs
15.12.2013
=====================
* Initial hammerhead release
FAQ i inne informacje
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,
is not mounted read-only. While there are other things preventing malicious software from messing with
, this might potentialy make it easier for such software to attack that system.
What do the ROMs share?
All ROMs are separate, except
, 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
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
.
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
into it, and then I can't even see it running on the device, so...why..bother..?
I'll
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/multiro...rting-MultiROM