2 votes

Créer manuellement des partitions A/B

J'ai un Xiaomi Mi 6X qui est la version chinoise du A2. Il existe un moyen de le convertir en A2, mais les mises à jour OTA ne fonctionneront pas car le 6X n'a qu'une partition A. Je ne suis pas sûr, mais j'ai lu qu'il est possible de créer/supprimer des partitions sur un appareil Android.

Je veux donc créer des partitions A/B manuellement, mais je n'ai aucune idée de comment cela se présente.

5voto

Irfan Latif Points 16863

Android utilise la table de partition GUID (GPT) comme système de partitionnement, qu'il est possible de modifier en utilisant des outils tels que parted y gdisk . Mais il y a quelques contraintes auxquelles je pense, autres que le problème de l'OTA que vous avez déjà mentionné :

  • Les appareils Android avec le schéma de partition A/B ont plusieurs partitions dans ( _a / _b ), dont system , vendor , aboot , sbl y modem . Les nouvelles partitions nécessitent de l'espace qui, de toute évidence, n'est pas disponible sur la mémoire flash (eMMC) et doit être libéré de votre ordinateur. userdata partition. Donc, vous serez court sur votre /sdcard espace.
  • Puisque toutes les partitions à créer ne sont pas adjacentes à userdata (qui est généralement la dernière), vous devrez peut-être supprimer et créer des dizaines de partitions. Les détails exacts dépendent de l'ordre des partitions dans votre table de partition. Il y a donc de fortes chances que votre appareil se fige :)
  • Le chargeur de démarrage d'application (aboot) sur les dispositifs A/B est différent de celui sur les dispositifs non-A/B. Sur les périphériques A/B, il y a deux boot partitions et aucune recovery partition. Le processus de choix de l'endroit où démarrer le périphérique est donc différent de celui des périphériques non-A/B.
  • De même, l'autre fonctionnalité de aboot qui dépend des noms de partition tels que fastboot update se brisera également. Et comme les chargeurs de démarrage sont des sources fermées, vous ne pouvez pas le modifier pour qu'il soit compatible avec votre nouvelle table de partition (à moins d'avoir de la chance et d'être un expert en hexedit binaires).

Il semble donc pratiquement impossible de convertir un dispositif non A/B en dispositif A/B.

2voto

Mohamed Faky Points 21

Le Xiaomi A2 a le même matériel que le Mi 6X et en fait, le Mi 6X est la version chinoise du A2. Pourquoi ne pas flasher entièrement le Mi 6X avec la ROM A2, y compris les structures GPT du firmware ? Le problème sera fastboot lui-même, comme vous ne pouvez pas écrire sur GPT là ou changer le nom des partitions comme il brise le fastboot existant dans l'actuel ABL (Android BootLoader), mais il devrait fonctionner si ABL lui-même est changé à celui dans A2.

Vous devrez utiliser le mode EDL pour écrire complètement la ROM A2 sur le Mi 6X avec la table de partition A2, ou au moins écrire la structure GPT et ABL.elf avec d'autres partitions de bootloader comme XBL.elf et ensuite utiliser fastboot (qui sera flashé depuis A2 donc il doit reconnaître et répondre au nom des partitions de A2) pour flasher les partitions restantes.

Cela ne devrait être possible que si les deux appareils sont typiquement les mêmes en termes de matériel et de firmware SoC et qu'il n'y a pas de Secure Boot eFuse fourni par Qualcomm dans le SoC du Mi 6X, car cela empêchera un ABL (Android BootLoader) modifié ou différent d'être chargé en premier lieu (même si le bootloader est déverrouillé), ce qui vous amènera à nouveau en mode EDL avec une erreur de démarrage. Donc, tout d'abord, vérifiez si vous avez activé le démarrage sécurisé ou non par quelque chose comme fastboot oem SecureBoot GetFuseStatus si votre appareil supporte cette commande, ou en flashant directement une autre ROM A2 avec ses structures GPT et voir ce qui se passe.

Vous devez également savoir que ce que vous faites est risqué et qu'il y a de fortes chances que votre téléphone se dérègle, alors faites-le à vos risques et périls.

0voto

michaelAdam Points 153

Le schéma de partitionnement a/b n'empiète pas sur le stockage interne - sur un Google pixel 1, le schéma a/b ne prend que 320MiB de plus que le schéma a-only. Source : Android Developers https://source.Android.com/devices/tech/ota/ab/ab_faqs

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X