Google a publié les GSI de la deuxième version bêta d'Android Q. Ces images système peuvent être installées sur des appareils compatibles Project Treble pour tester les applications. Voici comment.
À mesure que nous nous rapprochons de la version finale d'Android Q, le temps nécessaire aux développeurs pour mettre à jour leurs applications se raccourcit. Bien qu'Android 9 Pie (niveau API 28) n'ait pas encore atteint la grande majorité des appareils, les exigences de niveau API de Google Play, que vous devriez je suis déjà bien au courant, vous obligera à cibler le niveau API 29 en 2020. Si vous n'avez pas encore mis à jour votre application pour cibler Android 9 Pie, alors vous avez jusqu'en août si vous envisagez de lancer une nouvelle application ou jusqu'en novembre si vous envisagez de mettre à jour une application existante. Pour ceux d'entre vous qui souhaitent se lancer dans le développement de la prochaine version d'Android, vous pouvez déjà tester votre application sur le Émulateur Android Studio
ou sur du matériel physique si vous possédez n'importe quel smartphone Google Pixel. Cette année, cependant, Google propose aux développeurs un autre moyen de tester leurs applications avec la dernière version d'Android: flasher un Android Q bêta GSI sur un appareil compatible Project Treble.Projet triple est une initiative majeure visant à améliorer la vitesse à laquelle les fabricants de smartphones peuvent publier des mises à jour logicielles et de sécurité. En un mot, Treble exige que les fabricants d'appareils séparent le logiciel qui fait fonctionner le matériel du logiciel derrière le système d'exploitation. Cela permet aux fabricants d'appareils de démarrer de nouvelles versions d'Android sur leurs appareils existants afin de pouvoir commencer la tâche ardue de porter leur base de code existante au-dessus de la nouvelle version du code source d'Android. VTS, ou Vendor Test Suite, est complémentaire au CTS. Il s'agit d'un ensemble de tests que les fabricants d'appareils utilisent pour vérifier que leur appareil répond aux exigences du Project Treble. L'un des contrôles les plus importants que les fabricants d'appareils doivent tester est la capacité d'un smartphone compatible Treble à démarrer ce qu'on appelle un GSI, ou Generic System Image. Un GSI est une version non modifiée d'AOSP destinée aux fabricants d'appareils pour voir s'ils ont correctement implémenté Treble. Mais au-delà des constructeurs OEM, Google croit que les GSI peuvent être utilisés par les développeurs pour les tests de compatibilité des applications Android.
Par exemple, si vous ne possédez pas de Google Pixel, le seul moyen pour vous de tester le comportement de votre application dans les conditions qui correspondent le mieux à celles de Google la documentation vous permet soit d'acquérir votre propre appareil Pixel, de démarrer l'émulateur Android Studio ou de consulter un test cloud service. Chacun d'entre eux a ses avantages et ses inconvénients, mais si vous possédez déjà un appareil compatible Treble et que vous ne voulez pas dépenser d'argent ou faire face aux limitations d'un émulateur, pourquoi ne pas lui appliquer un GSI? Si votre application fonctionne sur un GSI, elle devrait fonctionner sur presque tous les appareils exécutant cette version d'Android.
C'est le processus de réflexion derrière la décision de Google de lancer les GSI Android Q, ou du moins c'est ce que nous pensons. Le code source d'Android Q ne sera pas disponible avant août, les binaires GSI officiels de Google sont donc le seul moyen pour le moment de tester Android Q sur du matériel réel non Pixel. Voici comment commencer.
Exigences
Avant même d'envisager d'installer la version bêta d'Android Q, vous devez vérifier si votre appareil est compatible avec Project Treble et peut accepter les images système clignotantes du chargeur de démarrage.
Exigences:
- Votre appareil DOIT avoir un chargeur de démarrage déverrouillable. Les smartphones Snapdragon Samsung vendus aux États-Unis, les appareils de marque Huawei, les appareils de marque Honor et les appareils de marque Nokia de HMD Global (à l'exception du Nokia 8) ne sont pas admissibles ici.
- Vous disposez des derniers binaires ADB et Fastboot installés sur votre PC, que vous pouvez trouver ici. Les versions obsolètes de Fastboot peuvent entraîner des flashs inappropriés.
- Votre appareil DOIT rencontrer un des critères suivants pour être considéré comme compatible avec Project Treble :
- L'appareil LANCÉ avec Android 9 Pie. Si tel est le cas, vous pouvez ignorer la confirmation de la compatibilité des aigus après avoir atteint la fin de cette section.
- L'appareil a été lancé avec Android 8.0 Oreo ou Android 8.1 Oreo, mais a été mis à jour vers Android 9 Pie avec isolation VNDK et système en tant que racine. Nous détaillons comment le découvrir dans la section ci-dessous.
Avant d'aller plus loin, il convient de mentionner que le flashage d'un GSI vous obligera à effectuer un effacement complet de la partition de données utilisateur. Cela signifie que vous perdrez toutes les photos, vidéos, musiques, documents ou tout autre élément présent sur le stockage interne et externe (/data/media) de l'appareil. Ainsi, effectuer une sauvegarde hors appareil avant d’aller plus loin est fortement recommandé.
Ensuite, gardez à l’esprit que ces GSI n’ont pas réussi le CTS, donc si votre application utilise l’API d’attestation SafetyNet pour vérifier l’intégrité de l’appareil avec une correspondance de profil CTS, cela ne fonctionnera pas. De plus, ces versions ne sont pas destinées à un usage quotidien, alors ne soyez pas surpris si une ou plusieurs fonctions matérielles de base ne fonctionnent pas en plus des bugs déjà documentés dans Android Q. Google a déjà répertorié quelques problèmes connus avec le GSI, que vous pouvez trouver ici. Tout nouveau bug que vous trouvez doit être classé ici.
Confirmation de la compatibilité des aigus
Exécutez la commande suivante :
adbshellgetpropro.treble.enabled
Si la réponse est FAUX, alors votre appareil n'est pas compatible avec Project Treble et vous ne devez pas continuer. Si la réponse est vrai, alors vous êtes libre de passer à autre chose.
Ensuite, vérifiez la prise en charge de plusieurs versions en exécutant ces commandes :
adb shell
cat /system/etc/ld.config.28.txt | grep -A 20"\[vendor\]"
Dans la sortie, recherchez la section [fournisseur], puis dans cette section, recherchez espace de noms.default.isolated. Si la valeur de cet attribut est vrai, votre appareil doit prendre en charge le démarrage d'Android Q GSI sur une image du fournisseur Android 9 Pie. Si la valeur est FAUX, votre appareil ne peut utiliser le GSI que pour la même version du système d'exploitation sur l'appareil.
Enfin, vous devez confirmer si votre appareil est un système en tant que root, dans lequel le disque virtuel est fusionné avec l'image système. Le système en tant que root n'est pas obligatoire pour les appareils mis à niveau vers Android 9 Pie, mais est nécessaire pour prendre en charge un OTA système uniquement, comme dans le cas du flashage d'une nouvelle version du système d'exploitation via GSI. Exécutez les commandes suivantes et vérifiez que le résultat correspond à « système en tant que racine » :
adb shell
cat /proc/mounts | grep -q /dev/root && echo"system-as-root" || echo"non-system-as-root"
Maintenant que vous savez que votre appareil est compatible Treble, vous devez déterminer quelle version du binaire GSI télécharger, car il existe différentes images pour différentes architectures. Pour voir quelle architecture possède votre appareil, exécutez la commande suivante :
adbshellgetpropro.product.cpu.abi
Notez le résultat ici, car vous en aurez besoin lors du téléchargement du GSI.
Télécharger le GSI
Les liens de téléchargement pour les versions officielles d'Android Q beta GSI sont disponibles auprès de Google. ici. Vous devez télécharger la version appropriée en fonction de l'architecture de votre appareil, que vous avez découverte à l'étape précédente. Le téléchargement sera assez volumineux si vous téléchargez la version avec GMS ou Google Mobile Services, ce que nous recommandons fortement afin que vous puissiez tester votre application sur une version avec les services Google Play.
Une fois le téléchargement du fichier terminé, vous pouvez le décompresser. Il contient deux fichiers, système.img, et vbmeta.img.
Flasher le GSI
- Redémarrez le chargeur de démarrage de votre appareil en utilisant soit une combinaison de boutons, soit en exécutant la commande :
adb reboot bootloader
- Ensuite, nous devons désactiver Android Verified Boot (AVB). Vous pouvez le faire en entrant la commande suivante :
fastbootflashvbmetavbmeta.img
- Ensuite, effaçons la partition système :
fastboot erase system
- On peut enfin flasher l'Android Q GSI avec :
fastbootflashsystemsystem.img
- Une fois cela fait, effacez la partition userdata avec :
fastboot -w
- Redémarrez votre appareil en utilisant le bouton d'alimentation ou en entrant :
fastboot reboot
Espérons qu'il devrait démarrer après quelques minutes. Ces étapes ont été validées sur un Pixel 3 XL, mais devraient fonctionner universellement. Nous pouvons vérifier que l'Android Q beta 2 GSI ne démarre pas sur le OnePlus 6T, mais il démarre sur le Xiaomi Mi 9. Cela peut fonctionner sur le Sony Xperia XZ3, mais on nous dit qu'il ne démarre pas sur le Moto G7. Votre kilométrage peut varier car les exigences de Google confirment uniquement la compatibilité GSI avec la même version du système d'exploitation.