[TUTO] Installer une seconde ROM en parallèle (dualboot)

  • Auteur de la discussion Chris314
  • Date de début
C

Chris314

Membre
Inscrit
7 Mai 2013
Messages
60
Points
6
  • #1

Installer une seconde ROM en parallèle sur Samsung Galaxy GT-I9505 (Dualboot)


Attention ! Cette opération peut comporter des risques. Ni moi ni Phonandroid ne peut être tenu responsable d'éventuels dégâts sur votre smartphone suite à une manipulation de votre part !

Bonjour,
Je partage un tuto qui va vous permettre d'installer une seconde ROM sur votre galaxy S4 en parallèle de celle qui est déjà installée (dualboot).
L'auteur du projet est chenxiaolong présent sur le forum XDA :
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Le but de l'opération est donc d'installer une seconde ROM en parallèle de celle qui est déjà installée. Pour ce faire, il est nécessaire de modifier les scripts d'installation de la seconde ROM et du ficher boot.img pour qu'elle s'installe et se charge depuis un répertoire différent.
Le script créé par chenxiaolong modifie la ROM pour qu'elle s'installe dans /system/dual, avec les répertoires /data/dual et /cache/dual associés. De cette manière, aucune modification n'est apportée à la ROM déjà présente sur le smartphone.

Le script peut modifier :
  • * les kernels custom
  • * certaines ROMs (voir ci-dessous) pour qu'elles s'installent en tant que ROM secondaires
  • * le package des applis Google pour les ROMs basés sur le projet AOSP
  • * superSU pour rooter si besoin la 2e ROM

Ce qui est pris en charge :
ROMs :
  • - les ROMs CyanogenMod Nightlies et les ROMs basés sur CyanogenMod
  • - PAC-Man
  • - la ROM Google edition
  • - la ROM MIUI
  • - la ROM Slim Bean
  • - la ROM FoxHound (TW)
  • - d'autres à venir (cf. changelog)...

Kernels :
  • La plupart des kernels basés sur Android 4.3 et 4.4 (KToonse's, faux123, ChronicKernel, Adam Kernal, Ausdim Kernel... )

Autres :
  • - SuperSU
  • - Les applications Google pour les ROMs basés sur CyanogenMod ou AOSP
  • - le package ComaDose (tweaks et scripts)

Modifier les fichiers d'installation
Nécessaire : soit un PC sous Linux ou windows, le fichier zip contenant les scripts de modification (à télécharger ci-dessous), soit simplement le S4 et l'application DualBootPatcherAndroid.apk installée.
Dans les deux cas, il faut également le ou les fichiers des composants à modifier à télécharger sur le(s) sujet(s) correspondant(s).

Avec LINUX :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Avec Windows :
Décompresser le .zip contenant les scripts de modification, puis, avec un explorateur, glisser le fichier .zip à modifier sur le fichier patch-file.bat
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Une fois l'opération terminée, un nouveau fichier est créé à partir de l'ancien avec l'ajout de "_dualboot" à la fin du nom.
Exemple : la modification du fichier pac_jfltexx_4.3.Build-1_20130910-225309.zip ajoutera le fichier pac_jfltexx_4.3.Build-1_20130910-225309_dualboot.zip dans le répertoire.

Installer la seconde ROM
Avant toute chose, télécharger l'application Dual Boot Switcher et les fichiers zip de secours depuis les liens de téléchargement ci-dessous.
Je ne saurais trop vous conseiller également de faire une sauvegarde de votre ROM actuelle (nandroid backup depuis le recovery)

  • 1 - Dans votre ROM actuelle (la principale), installer l'application Dual Boot Switcher
  • 2 - Lancer l'application, aller dans "Set current kernel as..." et sélectionner "Primary ROM's kernel"
  • 3 - Si votre ROM principale est basée sur TouchWiz, il peut être nécessaire d'enlever certaines applications système inutiles (bloatwares). Le but de ce tutoriel est de faire tenir deux ROMs dans /system, donc bien vérifier que l'espace libre dans /system est bien supérieur à la taille de la 2de ROM
  • 4 - Modifier le ou les fichiers d'installation des éléments de la 2de ROM (voir ci-dessus "Comment modifier les fichiers .zip d'installation")
  • 5 - Redémarrer en recovery
  • 6 - Installer (flasher) le(s) fichier(s) d'installation modifié(s) (donc se terminant par "_dualboot")
  • 7 - Redémarrer. Si tout se passe bien, c'est la seconde ROM qui se lance
  • 8 - Une fois passé la mise en route de la 2de ROM, installer l'application Dual Boot Switcher, et définir le kernel courant comme étant celui de la 2de ROM
  • 9 - C'est terminé ! Pour passer d'une ROM à l'autre, lancer l'application Dual Boot Switcher, aller dans "Choose ROM", sélectionner la première ou la seconde puis redémarrer le téléphone.

Questions - Réponses
Comment passer d'une ROM à une autre si l'une des deux ne fonctionne pas correctement ?
Flasher SwitchToPrimary.zip ou SwitchToSecondary.zip depuis le Recovery

Comment effacer les répertoires /cache, /data, /system et /dalvik-cache ?
En flashant le(s) zip approprié(s) depuis le Recovery selon la ROM concerné
Attention : ne plus utiliser le "wipe /system" du Recovery sous peine d'une erreur lors du démarrage de la seconde ROM. En effet, le Recovery effacera tout le répertoire /system, y compris le /system/dual qui contient les fichiers de la seconde ROM

Comment mettre à jour la ROM principale ?
D'abord, éditer le fichier META-INF/com/google/android/updater-script dans le fichier .zip d'installation pour qu'il ne formatte pas le répertoire /system ni le répertoire /dev/block/mmcblk0p16 (qui correspond à /system). Nettoyer la partition système manuellement en flashant WipeSystemPrimary.zip au préalable.
Ensuite, flasher la nouvelle version de la ROM, réinstaller les Gapps si nécessaire (ROM AOSP).
Une solution alternative consiste à flasher la nouvelle version de la ROM, puis flasher à nouveau la seconde ROM.


Comment installer des scripts ou un kernel pour la ROM principale ?
Simplement en les flashant dans le Recovery. Pour un kernel, aller ensuite dans l'application Dual Boot Switcher et "Set current kernel as..." primary ROM's kernel

Comment mettre à jour la ROM secondaire ?
Simplement en modifiant le fichier .zip puis en le flashant via le Recovery

Comment installer un kernel pour la ROM secondaire ?
Même principe que pour la ROM : modifier le fichier .zip avec le script puis le flasher via le Recovery
Il est également possible d'installer des scripts pour la ROM secondaire, mais il faut alors modifier manuellement le fichier .zip.

Comment retrouver les applications/données d'une ROM dans l'autre ?
Pour le moment, ce n'est pas possible étant donné que chaque ROM est indépendante. On peut toujours restaurer les appliations/données sauvegardées depuis une application dédiée (type Titanium Backup) mais l'application dans la seconde ROM n'influera pas sur celle installée dans la première. Les cartes SD interne et externe sont toutefois communes aux deux ROMs.

Comment désisntaller la seconde ROM et revenir à une seule ROM ?
D'abord, aller dans Dual Boot Switcher et sélectionner "Primary ROM".
Ensuite, plusieurs possibilités :
  • - restaurer une sauvegarde (nandroid backup) qui ne contient qu'une ROM
  • - depuis la ROM principale, à l'aide d'un explorateur de fichiers ayant les droits d'écriture sur /system (type Root explorer), effacer /system/dual, /system/dual-kernels, /cache/dual, and /data/dual. Ensuite, désinstaller l'application "Dual Boot Switcher"
  • - depuis le recovery, flasher WipeSystemSecondary.zip, WipeCacheSecondary.zip, and WipeDataSecondary.zip. Rebooter et désinstaller Dual Boot Switcher.

Téléchargements
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


Changelogs
Dernière version disponible (MàJ le 09/12/13) : V3.2.2
Version 3.2.2
Added support for:
Carbon's Kit Kat ROM
Omnifarious's ROM
Kangakat
BAM-Android
Infamous Google Edition
Echoe Google Edition
Echoe TouchWiz
Official MIUI (TouchWiz-based)
Moto X's optimized bionic and dalvik libraries installer
Version 3.2.1
Add support for VirginROM (4.4 Kit Kat)
Add support for Dandroid (4.4 Kit Kat)
Add support for faux's Google Edition 4.4 jgedlte kernel
Add support for Gummy's Google Apps package
Version 3.2.0
Google Edition ROMs have the ugliest ramdisk by far (err...I mean Google Edition 4.4 ROMs will now boot)
chmod.exe from Cygwin's coreutils in now included in the Windows build so the patcher can set the necessary permissions on the init binary in Google Edition 4.4 ROMs
Disable SELinux by default globally
Fix mediaserver crash caused by the removal of /system/etc/snd_soc_msm/snd_soc_msm_2x_Fusion3_auxpcm in jamal2367's Google Edition 4.4 ROM
Version 3.1.1
Add support for Ktoonsez's Google Edition 4.4 kernel
Add support for Hell(y?)kat
Version 3.1.0
Add support for multi-boot patching in the Android GUI
Version 3.0.1
Update SuperSU patch to support version 1.80
Switch to CyanogenMod 11's mkbootimg and unpackbootimg sources
Add support for Google Edition 4.4 ROMs (ie. stop trying to patch the missing MSM8960_lpm.rc in the ramdisk)
Hack to allow the file chooser in Android 4.4 Kit Kat to work properly (in the Android version of the patcher)
Version 3.0.0
Separate many functions into common.py to make patchinfo files simpler
Set compile target for the Android GUI to Kit Kat (API 19)
Add support for debug builds of the Android GUI so I don't have to sign test builds
Add support for removing those pesky device check asserts
Add support for using multiple patches (can combine auto-patcher with manual patch)
Fix broken patch generator in Windows (hopefully, we won't need it anymore though)
Removed by default for HellyBean
Add auto-patcher
Searches through updater script to find mount, unmount, format, and delete lines and replaces them with the multi-boot equivalent.
Finds line that flashes the kernel and inserts line that takes a backup and stores it in the appropriate place for the dual boot switcher
All partitions will always be unmounted after installation so the phone is not in a weird state when flashing the next zip.
Auto-patched ROMs
GoldenEye
CyanogenMod
HellyBean
PAC-Man
ProBAM
AOKP
IOKP
AOSP
SlimBean
Paranoid Android
AICP
Carbon
JellyBeer
Omni
Gummy
Vanir
Dirty Unicorns
jamal2367's Google Edition
Ktoonsez AOSP, TouchWiz, and Google Edition kernels
Faux kernel
Ausdim kernel
Adam kernel
Infamous kernel
Triforce ROM
Paranoid Android Google Apps
BaNkS' Google Apps
CyanogenMod's Google Apps
doomed151 Google Apps
SlimBean Google Apps (standard and aroma)
task650's AOKP Google Apps
MIUI's Google Apps
MIUI ROM
Foxhound
HTC Sense 5 port
MaKTaiL's Google Edition
Kangabean
Triple boot! (and quadruple and quintuple and ...)
Any auto-patched ROM is automatically supported
Requires version 2.0.0 of the Dual Boot Switcher app
Dual Boot Switcher supports up to 10 ROMs in addition to the primary and secondary
Patcher supports 3 ROMs in addition to the primary and secondary (unless someone wants more)
The Android GUI only supports dual booting for now
Partition configuration (where things are installed):
Introduced a new dualboot.sh script that keeps track of what has and hasn't been mounted
Terribly written updater-scripts aren't a problem anymore
Note: using the script outside of the patcher will cause the ROM to be installed as secondary
Note: I don't want to rewrite SELinux rules and compile a modified version of vold, so for now, the target /system must be on a different physical partition than the target /cache. Other dualboot solutions have worked around this by installing the ROM files to a loop mounted ext4 filesystem image
Installing ROMs to /data should work in theory, but will not be supported
Version 2.5.3
Catch exception when file cannot be extracted
Add support for loki'd ChronicKernel
Version 2.5.2
Add support for OmniROM's Kit Kat ramdisks
Add support for Paranoid Android 4.4 Google Apps
Fix syntax error in scripts/gendiff.py
Version 2.5.1
unlokibootimg: struct can convert little-endian bytes to integers in Python 3.0 and Python 3.1 too
Don't use backslashes for filenames when generating patches from Windows
Add rushi.1986's patches for GoldenEye AT&T: .
php?p=46950654&postcount=801
Update Sample.py for bootimg variable
Add support for Ktoonsez's non-AOSP kernels
Version 2.5
Add support for extracted loki'd boot images:
Add support for Loki'd ktoonsez's AOSP 4.3 kernels
Fix crash when script is run with Python 2 due to the code trying to encode a "UTF-8" string as "UTF-8"
Flush stdout when printing status messages because Python 2's print() doesn't do that automatically
Fix general patch for Kangabean and enable Loki ramdisk patching for it
Version 2.4.3
Add support for IOKP
Version 2.4.2
Use custom-compiled tar to fix extraction on ROMs that don't have tar with xz support
Fix status messages in patcher so the app doesn't appear to pause with no activity
Clean up app cache as soon as it's not needed anymore
Add support for GoldenEye (TouchWiz 4.3) for T-Mobile
Version 2.4.1
Add support for loki'd Slim Bean
Version 2.4
Switch to GNU patch because busybox's patch can't handle fuzz. There's no way in the world we could ever have 100% perfect patches, so busybox is not an option.
Version 2.3
New Android app for patching files directly on the phone
Version 2.1
Add script for generating patches
Version 2.0
Add support for automatic ramdisk patching
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

Version 1.18.1
Add LiquidSmooth ramdisk
Add support for LiquidSmooth
Version 1.18
Add munchy_cool's 64-bit OS X unpackbootimg and mkbootimg binaries
Add support for OS X
Version 1.17.5
Add support for Metaiiica's PAC-Man
Version 1.17.4
Fix regular expressions for HellyBean and AOSP
Version 1.17.3
Add rushi.1986's fix for the ramdisk replacement script:
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

Version 1.17.2
Add support for ProBAM
Version 1.17.1
Add support for HellyBean
Windows: Allow zip files to reside on a drive other separate from the patcher
replaceramdisk.py: Bug fix in variable name
Version 1.17
Add support for Vertigo's AOKP
Add generic AOKP ramdisk
Version 1.16.2
Add support for TriForceROM
Version 1.16.1
Add support for iNTriNsiC (20130806 version)
Version 1.16
Add support for Negalite
Version 1.15
Add support for geiti94's Sense 5 port
Version 1.14.2
Add support for Kangabean
Version 1.14.1
Add support for Paranoid Android Google Apps package
Version 1.14
Add support for Broodplank's AOSP
Add support for doom151's AOSP Google Apps package
Version 1.13
Add support for Evil UnWizzedVersion 1.12
Add support for ComaDose
Add support for JellyBeer
Add support for jamal2367's Google Edition ROM
Version 1.11
Fix critical bug in the repacking of boot.img that may cause secondary ROM to not boot (duplicate files w/same name in zip)
Version 1.10.1
Add support for AROMA Slim Bean Google Apps package
Version 1.10
Optimize patcher script so only one full zip read and one full zip write is required
Add support for BaNkS's Google AppsVersion 1.9
Add support for Carbon ROM
Add patched Carbon ramdisk
Version 1.8.1
Use 0 context diff for paranoidandroid.dualboot.patch so it can apply properly to AOSPA's updater-script
Version 1.8
Add support for FoxHound ROM
Add generic TouchWiz ramdisk
Update README with notice about free disk space
Bind mount /data/media during installation. It is bad practice for an updater-script to touch /data/media, but some ROMs do this, so we need to handle it
Add support for mounting secondary /cache in dual boot helper script
Update replaceramdisk.py to support version 1.7's change in ramdisk compression
Version 1.7
Rework compression of ramdisks (cuts down size of patcher from ~15 MB to ~6 MB):
Version 1.6.3
Add support for Adam kernel (UNTESTED)
Version 1.6.2
Add support for Ausdim kernel (UNTESTED)
Version 1.6.1
Add support for Slim Bean ROM
Version 1.6
Add new script for replacing the ramdisk in boot.img
Version 1.5
Add support for MIUI
Version 1.4.2
Add support for ParanoidAndroid
Version 1.4.1
Experimental Infamous kernel support (UNTESTED)
Version 1.4
Initial support for Google Edition ramdisks
Add support for MaKTaiL's Google Edition ROM
Version 1.3
Minor fixes in preparation for public release
Update README with supported files and convert line endings to rn (thanks Windows!)
Version 1.2.6
Add SuperSU support
Version 1.2.5
Add AOKP support
Version 1.2.4
Add ChronicKernel support
Version 1.2.3
Add support for Vertigo's PAC-Man
Version 1.2.2
Add support for CyanogenMod's Google Apps
Version 1.2.1
Add support for official CyanogenMod nightlies
Version 1.2
Add faux kernel support
Version 1.1
Add Windows support
Newly compiled mkbootimg.exe and unpackbootimg.exe to support Windows' separate text and binary file I/O modes
Add a portable, minimal version of Python 3 for Windows
Use newer GNU patch from MSYS for Windows
Version 1.0
Initial release (Linux only)
Supported kernels: ktoonsez AOSP 4.3


Lien utile
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
 
C

Chris314

Membre
Inscrit
7 Mai 2013
Messages
60
Points
6
  • #2
C'est mon premier tuto, j'espère que c'est compréhensible.
Par ailleurs, j'ai personnellement testé le tuto : j'ai la ROM Pyrana 1.10 en ROM principale et PAC-Man ROM en secondaire, les deux fonctionnent bien. Je trouve ce tuto pratique pour tester différentes ROMs/kernels sans systématiquement perdre la ROM que j'utilise habituellement.

Vos retours sont les bienvenus !
 
Lucas

Lucas

Membre VIP
Inscrit
22 Avril 2012
Messages
10 685
Points
38
  • #4
Enfin le dualboot :D A tester ! merci ;)
 
B

briwax

Membre
Inscrit
10 Septembre 2012
Messages
30
Points
0
  • #5
"Comment mettre à jour la ROM principale ?
D'abord, éditer le fichier META-INF/com/google/android/updater-script dans le fichier .zip"

On fait quoi et comment ça ?
 
C

Chris314

Membre
Inscrit
7 Mai 2013
Messages
60
Points
6
  • #6
briwax a dit:
"Comment mettre à jour la ROM principale ?
D'abord, éditer le fichier META-INF/com/google/android/updater-script dans le fichier .zip"

On fait quoi et comment ça ?

Sur un PC, tu décompresses le fichier Nom_de_la_ROM.zip de la ROM dans un répertoire Nom_de_la_ROM.
Dans ce répertoire, tu vas jusqu'au sous-dossier META-INF/com/google/android.
Dans ce répertoire, il y a un fichier updater-script, qui est le script linux exécuté par le recovery lors de l'installation. Tu édites ce ficher avec un logiciel type NotePad et tu supprimes la ligne qui efface le dossier /system.

Tu as par exemple le début d'un fichier updater-script :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Dans l'exemple, il suffit de supprimer la ligne 24
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Tu enregistres, puis tu recompresses le dossier Nom_de_la_ROM en un .zip avec un gestionnaire de fichiers compressés.
 
chkoon

chkoon

Membre
Inscrit
16 Juin 2012
Messages
21
Points
0
  • #7
Salut @ tous la méthode de patch a évolué on peut patcher sa ROM(si compatible)directement depuis son smartphone grace a l'outil dualboot patcher signed.apk c'est d'une simplicité(ou facilité)surprenante :D
 
C

Chris314

Membre
Inscrit
7 Mai 2013
Messages
60
Points
6
  • #8
Merci pour l'info, je vais mettre à jour le tuto.
 
W

Watcher94

Membre
Inscrit
4 Novembre 2012
Messages
11
Points
0
  • #9
Hello merci pour le tuto, j'ai un problème je ne sais pas comment passer de la ROM 1 et la ROM 2. J'ai pris le ZIP dualboot utilities mais comment l'installe t'on ?
Un autre problème aussi ma 2nd ROM est paranoïd Android 4.0 il y a les gapps à installer mais je n'arrive pas à patcher le fichier. Je me retrouve avec une erreur.
 
C

Chris314

Membre
Inscrit
7 Mai 2013
Messages
60
Points
6
  • #10
Salut,

Pour passer d'une ROM à l'autre, tu installes et utilises l'appli Dual Boot Switcher (2nd lien en bas du tuto). Le mieux est d'installer cette appli avant d'installer la 2de rom.
Quant aux gapps de paranoid 4.0, je vais voir si elles sont prises en charge par le script.
 
A

alduin

Membre
Inscrit
17 Décembre 2012
Messages
5
Points
1
  • #11
bonjour a tous,

j'ai un s4 sous pyranah et j'ai voulu test le dual boot, alors j'ai suivis le tuto et j'ai mis la cyanogene mais voila tout marche bien mais j'ai pas le play store, malgré que j'ai flash le gapps, j'ai même tout wipe cache etcetc (se qui m'a valu un joli reset de ma rom principal xD, mais ça pas grave, j'ai des saves :p )

j'arrive bien a switch entre les deux mais j'arrive vraiment pas a mettre gapps, avez vous une idée de la manière a suivre ?
 
N

NinjaGorilla

Membre
Inscrit
21 Avril 2014
Messages
24
Points
1
  • #12
Bonsoir, j'utilise la rom omega sur mon S4, et j'ai voulu essayer plusieurs roms en dual boot directement depuis mon téléphone (pourquoi se compliquer le tâche? :p) , j'ai tout de même constaté que les roms Pacman et Foxhound n'étaient pas supportées par dualbootpatcher.apk ; j'ai donc décider de faire cela sur mon ordinateur avec la dernière version de dualbootpatcher.zip . En le décompressant, je n'ai pas trouvé le fichier "patch-file.bat" . J'en ai déduis qu'il fallaitcoller le fichier zip de la rom sur le fichier "PatchFileWindows", et là j'ai eu droit à l'ouverture d'une fenêtre cmd pour faire les manipulation à l'aide de choix. Les roms que j'ai cité plus haut "n'acceptent pas d'être patchées" sur le téléphone, mais la création du fichier dualboot.zip peut se faire malgré tout sur pc (sachant que cmd vous précisse également que la rom n'est pas supportée). J'ai donc réussi à créer un fichier dualboot.zip pour la rom Pacman, je la teste, et je vous fait un retour. Souhaitez moi bonne chance.
Sur ce, je vous souhaitent à tous une bonne soirée et bon Ramadan aux utilisateurs musulmans.
 
ThomasTom

ThomasTom

Membre VIP
Inscrit
14 Février 2015
Messages
1 589
Points
38
  • #13
Bonsoir, est-ce que le tuto est compatible pour S4 en rom Lollipop 5.0.1 ou non ??
 
Haut Bas