samedi 26 novembre 2011

[Android] Multi boot avec Boot Manager !

Possédant un HTC Desire sous Android depuis 2 ans, j'ai toujours aimé tester différentes roms. Je le flash au moins une fois par semaine... Et bien qu'il existe des tas de solutions pour restaurer l'état précédent du téléphone, pour sauvegarder les applications et données, il arrive souvent (quand on chipote un peu trop :p) que cela ne fonctionne pas correctement. De plus ce sont des processus relativement lents.
C'est là qu'intervient Boot Manager !!
Avant de vous lancer dans l'aventure, votre téléphone doit être rooté et vous devez connaitre les bases, c'est à dire savoir se servir d'un recovery alternatif, savoir flasher une rom,... Si vous ne savez pas de quoi je parle, commencez par chercher un tutoriel sur cela !

Boot manager ? C'est quoi ?

Boot Manager est plus ou moins à Android ce que Grub est à Linux. Ce logiciel vous permet en effet d'installer jusqu'à 5 roms en même temps sur votre téléphone ! De plus, vous pourrez aussi modifier la taille des partitions pour, par exemple, avoir plus de place pour installer des applications ou faire entrer un système trop gros pour la taille actuelle de votre partition /system. En fait, l'application crée des fichiers *.img sur votre carte SD, qui contiennent les partitions "virtuelles" qui vont pouvoir héberger les autres roms.
Nous allons voir en quelques étapes comment cela se passe...

1 - Installation et premier setup


Lors de la première installation de l'application, Boot Manager va vous proposer de réaliser le setup de la rom interne du téléphone. En réalité, cette étape a pour but de copier le fichier boot.img de votre rom actuelle (donc dans la mémoire interne) sur la carte SD et ce, pour que vous puissiez revenir sur cette rom après avoir démarrer sur une autre. Car c'est justement le boot.img qui dit au téléphone où se trouve le système, la taille des partitions, etc...
Donc lorsque vous demanderez à Boot Manager de démarrer la rom 2 par exemple, il remplacera le boot.img original par celui qui dit au téléphone que le système se trouve sur la carte sd dans system.img et hop, le tour est joué !
Vous pouvez réaliser ce premier setup à tout moment sur la page "phone rom". Cette opération ne prend que quelques secondes et est à refaire chaque fois que vous installez une autre rom dans la mémoire interne du téléphone. Par précaution et vu le peu de temps que ça prend, je vous conseille de le faire chaque fois que vous flashez quoique ce soit sur la rom principale.

2 - Vérification / modification des options


Là, on va voir ce qu'on peut faire dans les options avant d'installer une rom à proprement parlé.


Voici le panneau d'options.
- Automount Sdcard : Permet de monter automatiquement le stockage USB quand il est connecté
- Force Large Boot.img : Ancien système de Boot.img, non recommandé, ne fonctionne en tout cas pas pour le Desire. A essayer si par hasard vous avez un problème avec une rom en particulier.
- Disable USB Notification : Ajoute une notification en plus de celle par défaut pour activer le stockage de masse. A désactiver dans la rom d'origine pour ne pas faire double emploi mais par contre dans les autres roms, vous en aurez besoin pour monter le stockage correctement. L'option d'origine ne fonctionnera pas.
- Screen On During Install : Permet de garder l'écran allumé le temps d'installer une rom dans un slot libre. Utile pour ceux qui ont un profil qui modifie la vitesse du CPU lorsque l'écran est en veille.
- Manually Set Variables : Nous y reviendront plus tard...
- UI Tweaks : Permet de changer les couleurs et autres options graphiques pour l'interface de Boot Manager
- Open to Booted Rom : Va faire en sorte que lorsque vous lancerez Boot Manager, il vous affichera automatiquement la page de la rom que vous êtes entrain d'utiliser et non la première qui concerne la rom par défaut (mémoire interne).
- Viewpager Titles : Si non coché, affiche le nom de la rom comme titre de page. Si coché, affiche rom1, rom2...

Le reste concerne les notifications lorsque l'installation d'une rom est terminée.

3 - Manually Set Variables


C'est là que la magie opère en ce qui concerne la taille des partitions dont je parlais plus haut.


Pour chaque slot libre, la première fois que vous installez une rom, le programme crée les fichiers *.img qui contiennent les différentes partitions. Pour cela, il a besoin de connaitre la taille de chacune d'entres elles. C'est ici que ça se passe ! Les deux premières options ne doivent pas être touchée. La troisième concerne la taille de la partition système, la quatrième, la partition data (qui contient les applications et les données correspondantes) et la dernière la taille du cache (qui peut rester à 40, c'est plus que suffisant).
Vous pouvez voir sur le screen que j'ai un système de 250Mo alors que dans le téléphone, il ne fait que 145Mo, et la partition data fait 512Mo alors qu'elle ne fait en réalité que 288Mo en interne.
Donc n'hésitez pas ! Vous entrez un chiffre, vous cliquez sur "Set" et lorsque c'est fini, "Finished". Et vous pouvez donc modifier cela avant chaque installation d'une rom dans un slot libre.
Attention toutefois, ces images sont sur la carte SD et y prennent la place que vous avez indiquer... N'allez pas taper 1Go pour le système, cela surchargerait la carte et serait en plus totalement inutile !

Voilà qui clôture la préparation avant installation des roms. Là, on va pouvoir commencer à s'amuser :-)

4 - Ecrans des roms, installation d'une rom



Sur le premier screenshot, vous apercevez le premier écran des roms qui concerne donc la rom principale, celle installée dans le téléphone lui-même. Vous avez la possibilité de booter dessus, de redémarrer en mode Recovery et de relancer le fameux Setup qui permet de copier le boot.img. La dernière option, "Manage UI", permet de définir un screenshot pour la rom en question, le nom de cette rom (par défaut, il prend le nom du zip que vous avez flashé), de changer le nom du Kernel et d'introduire une description.

Le deuxième screenshot représente le deuxième écran des roms. Les trois suivants sont identiques et concerne les roms que vous installez sur la SD. Pour le premier bouton, c'est pareil à l'écran précédent, il vous permet de démarrer sur la rom en question.
Le second vous permet de flasher une rom sur le slot. Il vous demandera de choisir le *.zip qui contient la rom à flasher. Ensuite, vous verrez trois cases à cocher en dessous qui vous permettrons de faire un wipe de chacune des trois partitions. Si vous installez une nouvelle rom, vous DEVEZ cocher les trois cases. Si par contre il s'agit d'une mise à jour ou d'un add-on (thème, application,...), ce n'est pas nécessaire. En fait, cela fonctionne exactement comme votre recovery !


Le bouton "Manage Slot" vous permettra de faire un nandroid backup de la rom en question, de la restaurer, ou encore de faire un wipe data. L'option Delete Slot ne fait pas qu'effacer la rom, elle efface les fameux fichiers *.img entièrement. Donc si vous voulez installer une autre rom en gardant les mêmes tailles de partitions, vous pouvez simplement faire "Install Zip" et cocher les trois cases pour faire un wipe complet. Par contre dans le cas où vous voudriez changer les tailles, "Delete Slot" est la solution.

5 - "La rom ne démarre pas !!! Que faire ?"


Il peut arriver que la rom sur laquelle vous essayez de booter ne démarre pas. Vous vous retrouverez coincé sur le premier écran de chargement... et ce, même si vous enlevez la batterie pour recommencer.
Pas de panique ! Si vous avez bien fait la première étape, l'image du boot est sur la carte SD ! Et les développeurs ont pensés à tout ;-) Il vous suffit d'enlever / remettre la batterie, de redémarrer en recovery et de flasher le zip présent à l'emplacement /sdcard/bootmanager/phonerom/update.zip et le tour est joué !

Si toutefois vous avez d'autres soucis, le programme crée un fichier de log dans le dossier sur la carte SD. N'hésitez pas non plus à contacter les développeurs via le forum (anglais) http://forum.init2winitapps.com. Le support y est plus que satisfaisant !

Voilà qui clôture se tutoriel. Si vous avez des questions ou des suggestions, n'hésitez pas à me contacter ou à laisser un commentaire !

2 commentaires:

  1. Very nice tutorial, very well done! Thanks a ton for being patient and helping test the new boot.img method before we released version 3.1 officially. I hope this is readable as i'm using a translator :)

    RépondreSupprimer
  2. Très bon didacticiel, très bien fait! Merci une tonne d'être patient et d'aider de tester la nouvelle méthode boot.img avant que nous a sorti la version 3.1 officielle. J'espère que ce n'est lisible que j'utilise un traducteur

    RépondreSupprimer