Magisk prend désormais en charge le système en tant que racine et les partitions logiques de Google Pixel 3 / Pixel 3a sur Android Q

Google a lancé la première version bêta d’Android Q en mars et l’accès à la racine via Magisk est rapidement devenu disponible pour Google Pixel et Google Pixel 2. Le Google Pixel 3, cependant, n’a pas pu être rooté sur Android Q car le développeur de Magisk, développeur reconnu topjohnwu, devait comprendre comment travailler avec la nouvelle disposition des partitions logiques. Avec son nouveau stage chez Apple, topjohnwu a eu moins de temps pour travailler sur Magisk, mais cela ne l'a pas empêché de réaliser deux avancées majeures dans le développement. Dans la dernière version de Canary, Magisk prend désormais en charge le système en tant que root, ce qui rend plus difficile la détection des accès root par les applications, ainsi que les appareils dotés de partitions logiques telles que les séries Pixel 3 et Pixel 3a XL sur Android Q.

Forums Google Pixel 3 Forums Google Pixel 3 XL

Forums Google Pixel 3a Forums Google Pixel 3a XL

Prise en charge de la partition logique Google Pixel 3 et Pixel 3a sur Android Q

Pour aider les développeurs à tester les versions AOSP d'Android sur des appareils existants, Google publie des images système génériques (GSI) pouvant être démarrées sur des appareils compatibles avec Project Treble (tout appareil lancé avec Android 9 Pie ou une version ultérieure.) L'installation d'un GSI nécessite le déverrouillage du chargeur de démarrage, ce qui peut ne pas être possible sur tous les périphériques, et le clignotement d’une image système sur Fastboot après l’effacement des données utilisateur. Dans Android Q, Google introduit une nouvelle fonctionnalité appelée Mises à jour système dynamiques qui permet aux développeurs de démarrer un GSI sans déverrouiller le chargeur de démarrage ni effacer les données. Afin de prendre en charge les mises à jour système dynamiques, un périphérique doit disposer de partitions logiques pouvant être redimensionnées de manière dynamique pour libérer de l'espace pour l'installation de GSI. Les Google Pixel 3, Google Pixel 3 XL, Google Pixel 3a et Google Pixel 3a XL possèdent des partitions logiques sur les bêtas d’Android Q, bien que seuls les Pixel 3 et Pixel 3 XL prennent en charge le DSU. Néanmoins, c'est à cause de ce changement radical dans la structure de la partition que Magisk ne fonctionnait pas.

Lorsque topjohnwu est déterminé, rien ne l'empêche d'accéder à la racine. L’autre jour, il a annoncé qu’il avait réussi à ancrer son Pixel 3 XL sur Android Q bêta 4. Sa description de validation décrit ici les détails techniques de la prise en charge de la partition logique, mais l’important est que Magisk puisse désormais être installé sur des périphériques. avec ou sans partitions logiques.

//twitter.com/topjohnwu/status/1144832417946984448

Support système en tant que racine

Pour les périphériques avec des partitions doubles A / B, la partition système est montée en tant que répertoire racine (/), mais pour les périphériques sans partitions doubles A / B, la partition système est montée sur / system. Cela rend les OTA uniquement système impossible sur les périphériques non A / B car les fichiers du disque mémoire, qui doivent être mis à jour, se trouvent dans la partition de démarrage. C'est pourquoi, pour rendre les OTA uniquement système dans Android Pie et les versions ultérieures, Google exige que tous les appareils lancés avec Android Pie prennent en charge la disposition de partition système en tant que racine. Dans la présentation système en tant que racine, l'image du disque mémoire est fusionnée dans l'image système, qui est montée en tant que rootfs.

Depuis que Google a lancé System-as-root, la solution pour les périphériques root était de rétablir l’ancienne partition «initramfs rootfs». Cela fonctionne très bien pour Android 7.1 à Android 9 Pie, étant donné qu'Android prend en charge cette ancienne mise en page, mais Android Q supprime complètement cette prise en charge car le système en tant que root est désormais obligatoire pour tous les appareils, même ceux en cours de mise à jour vers Android Q. Les versions précédentes de Magisk fonctionnaient toujours grâce à quelques "très méchants hacks", mais topjohnwu n'était pas satisfait de cette solution. Il a donc introduit "MagiskInit" pour prendre en charge correctement le système en tant que racine.

Un effet secondaire intéressant de la prise en charge correcte de la disposition de la partition système en tant que racine est qu’une avenue potentielle de détection de la racine a été réduite. Comme topjohnwu me l'a gentiment expliqué, l'ancienne méthode de détection des applications était facile à détecter, car Magisk montait le système sur '/ racine_système' et liait les montures '/ racine_système / système à' / système '. Tout ce qu'une application doit faire pour détecter la présence de root est de vérifier si '/ racine_système' existe ou si '/' est 'rootfs'. Cependant, il n'est pas évident que les applications en aient réellement profité pour détecter root. Pourtant, il vaut mieux prévenir que guérir.

Changements Divers

Android Q introduit la prise en charge de quelque chose appelé le «pool blastula» dans le cycle de vie des applications Android. MagiskHide n'a pas pu détecter les applications pour masquer l'accès root si la nouvelle fonctionnalité de «pool de processus» était activée. La dernière version de Canary prend désormais en charge cette fonctionnalité. Selon topjohnwu: "Pour prendre en charge correctement la nouvelle optimisation du pool de blastula introduite dans Q, j'avais réécrit une bonne partie de la logique de traçage pour la surveillance des processus."


Si vous avez un Pixel 3, un Pixel 3 XL, un Pixel 3a ou un Pixel 3a XL sur Android Q bêta, essayez la dernière version de Magisk Canary et indiquez-nous si vous parvenez à rooter votre appareil.

Magisk Canary Channel