Pourquoi Google change-t-il le format de l'application Android ?  – CloudSavvy IT
Agence web » Actualités du digital » Pourquoi Google change-t-il le format de l’application Android ? –

Pourquoi Google change-t-il le format de l’application Android ? –

Quietbits/Shutterstock.com

Les applications Android ont historiquement été distribuées sous forme d’APK (packages Android). Un APK contient une version compilée d’une application, ainsi que des ressources multimédias critiques telles que des icônes et des sons. Ils incluent également un fichier manifeste, fournissant des informations sur l’application au système Android, ainsi qu’un ensemble de certificats et de clés de signature qui vérifient l’identité de l’éditeur.

En mai 2018, Google a lancé un nouveau format d’emballage d’applications destiné à combler certaines des lacunes des APK. Les Android App Bundles (AAB) remplissent le même rôle que les APK, mais avec des différences de mise en œuvre importantes.

Lors de Google I/O 2021, Google a annoncé que AAB deviendrait le format d’application Android par défaut. À partir de fin août, le Play Store exigera que les nouvelles publications d’applications soient soumises en tant qu’AAB. Les utilisateurs finaux qui n’utilisent que le Play Store n’auront rien à faire. Pour les développeurs, l’histoire est un peu plus compliquée.

Avantages de l’ensemble d’applications

AAB a été introduit à l’origine comme un moyen de résoudre certains des problèmes d’emballage courants dans l’écosystème Android. Android fonctionne sur des milliers d’appareils couvrant une vaste gamme de tailles d’écran, de références de performances et d’architectures de processeur. Le format APK ne s’adapte pas à cette diversité car chaque package contient toutes les ressources de l’application.

Si vous installez une application sur votre téléphone, vous n’avez pas vraiment besoin de télécharger les variantes de tablette haute résolution de ses graphiques. Pourtant, avec APK, vous obtiendrez normalement toutes les variantes, ce qui entraînera des téléchargements plus importants et une utilisation accrue du stockage. Si un développeur souhaite proposer des versions plus rationalisées, il doit compiler et signer manuellement plusieurs APK différents.

Les App Bundles adoptent une approche différente. De par leur conception, ils « regroupent » plusieurs versions différentes d’une application dans un seul package logique. Le Play Store n’envoie alors que les bits pertinents à chaque appareil qui demande une installation. Il produira le bon ensemble à la demande pour chaque utilisateur, de sorte qu’un utilisateur américain avec un appareil Intel de 10 pouces obtiendra un téléchargement différent d’un individu allemand avec un téléphone ARM de 5 pouces. Surtout, les appareils reçoivent toujours des APK – les utilisateurs n’interagiront jamais directement avec un App Bundle. La différence est que les APK sont générés dynamiquement, dans le cloud.

Les bundles d’applications bénéficient également d’un chargement plus simple des modules complémentaires et d’une prise en charge améliorée des ressources volumineuses telles que le contenu du jeu. Selon Google, tout cela se traduit généralement par une réduction de 15 % de la taille du téléchargement, par rapport à la même application distribuée en tant qu’APK.

Qu’est-ce qui change pour les APK ?

Google supprimera progressivement la prise en charge des APK à partir d’août 2021. Les nouvelles applications soumises au Play Store devront être publiées sous forme de bundle d’applications. Les applications existantes basées sur APK seront toujours prises en charge et les développeurs pourront continuer à publier des mises à jour. Ces applications sont décrites comme « actuellement exemptées », ce qui suggère que des mises à jour pourraient devoir être publiées en tant qu’AAB à l’avenir.

Selon Google, le changement est effectué afin que davantage d’utilisateurs bénéficient des avantages de l’App Bundle. Du point de vue d’un utilisateur final typique, il est difficile de contester la promesse des App Bundles : des téléchargements plus petits et un espace de stockage réduit seront bien accueillis par beaucoup, en particulier ceux sur des appareils bas de gamme et des connexions Internet lentes.

Les utilisateurs d’anciennes versions d’Android ne verront pas les avantages car leur appareil ne sera pas en mesure d’assembler des offres «divisées» dans une application fonctionnelle. Cependant, les versions obsolètes du système d’exploitation pourront toujours installer des applications App Bundle à partir du Play Store – le système de regroupement se rendra compte qu’il gère un appareil plus ancien et servira à la place un APK tout-en-un ordinaire.

Qu’en est-il des inconvénients?

Bien que les principaux avantages soient incontestables, les App Bundles présentent un inconvénient majeur pour les développeurs et les utilisateurs expérimentés. Comme le système App Bundle se concentre sur la génération dynamique dans le cloud d’APK signés, les développeurs doivent remettre leurs clés de signature d’applications à Google. Au lieu que les développeurs signent les mises à jour d’applications dans leur propre infrastructure de build, Google prendra un App Bundle et le convertira lui-même en APK signés.

Le processus de signature permet aux appareils Android de vérifier que les mises à jour proviennent du même éditeur que l’application actuellement installée. C’est un élément essentiel de l’écosystème qui empêche les mauvais acteurs de produire des applications malveillantes qui écrasent silencieusement les téléchargements authentiques. Google promet que les développeurs pourront fournir leurs propres clés, mais elles devront toujours être conservées dans le Play Store.

Faire confiance à Google pour stocker les clés de signature donne à l’entreprise encore plus de contrôle sur la distribution des applications Android. Toute personne ayant réussi à compromettre le Play Store pourrait commencer à publier des mises à jour d’applications sur les comptes de développeur, car toutes les clés de signature seront centralisées au sein de l’infrastructure de Google.

De plus, Google pourrait désormais publier lui-même des mises à jour d’applications, peut-être si un gouvernement l’y obligeait. Il a déjà la possibilité d’installer silencieusement des applications sur les appareils Android. Maintenant qu’il détient les clés des royaumes des développeurs, il pourrait se conformer aux demandes d’installation secrète de mises à jour non approuvées d’applications existantes.

Une agence gouvernementale pourrait-elle demander à Google d’installer une application de messagerie cryptée modifiée sur l’appareil d’un utilisateur cible ? Une telle demande pourrait permettre à l’agence d’intercepter des messages, sans que la cible en soit avertie. Les bundles d’applications et la signature hébergée rendent le scénario théoriquement possible.

Le risque serait atténué par un système de « transparence du code ». Ceci est destiné à donner aux développeurs et aux utilisateurs finaux un moyen de vérifier que les APK téléchargés correspondent au bundle qui a été soumis au Play Store, éliminant ainsi la possibilité d’intrusion.

Cependant, Android ne vérifie pas réellement les signatures de transparence du code, il appartient donc à la communauté de créer des outils autour de celui-ci. De plus, la transparence du code est entièrement facultative et n’est activée que lorsque l’APK comprend un fichier de transparence. Comme Google détient déjà les clés nécessaires pour générer de nouveaux APK, il pourrait supprimer le fichier de transparence du code à tout moment.

Ensembles d’applications et magasins d’applications tiers

Les bundles d’applications constituent également une menace pour la nature ouverte de l’écosystème Android. Ces dernières années, Google a affirmé un rôle de gérance plus important. Les App Bundles sont un autre coup contre les magasins d’applications tiers qui proposent des téléchargements directs d’APK.

Comme les développeurs devront désormais compiler des App Bundles, les builds APK sont mis de côté. Ce n’est peut-être qu’une question de temps avant que Google désactive complètement l’installation directe d’APK ou supprime les capacités de création d’APK des versions officielles d’Android Studio.

Pour le moment, les développeurs pourront télécharger des APK autonomes signés depuis le Play Store, après avoir soumis des App Bundles. Ces APK seront prêts à être téléchargés dans des magasins d’applications tiers, il n’y a donc aucun risque immédiat pour ce modèle de déploiement. C’est toujours un inconvénient pour les développeurs – vous devez soit télécharger manuellement vos APK signés, soit les créer séparément sur votre ordinateur local.

Google a annoncé le passage obligatoire aux App Bundles quelques jours seulement après que Microsoft a dévoilé Windows 11 avec prise en charge des applications Android de l’Amazon App Store. Bien que le passage aux App Bundles ait pris quelques années, la décision de Google de passer maintenant pourrait être destinée à limiter l’impact du partenariat Microsoft/Amazon, qui ne prendra en charge que les APK réguliers.

Conclusion

Les bundles d’applications Android sont un nouveau format de compilation d’applications beaucoup plus efficace qu’un APK classique. Bien que les appareils recevront toujours un APK, chacun sera adapté spécifiquement à la version du système d’exploitation, au facteur de forme de l’appareil et aux paramètres régionaux actifs.

Alors que les App Bundles devraient être bien accueillis par la plupart des utilisateurs Android, ils ne sont pas une solution parfaite pour les développeurs et l’écosystème Android au sens large. Le modèle App Bundle donne à Google plus de contrôle sur la distribution des applications, exigeant la divulgation des clés de signature qui pourraient faire des mises à jour forcées des applications une réalité tout en menaçant les vitrines tierces.