Voici la présentation d'Adrien Grassein, Technical Expert en logiciel embarqué chez Smile, lors du petit déjeuner technique [ROM Android Customs] du 29 juin 2018.
6. 2 - Android AOSP
Qu’est-ce que Android ?
Un système d’exploitation (Licence Apache v2) ;
Des applications ;
Un environnement de développement complet ;
Un environnement de debug ;
Un système de build.
6 / 54
7. 2 - Android AOSP
Pour quels cas d’usage ?
Connectivité ;
Ecosystème applicatif ;
Multimédia ;
Rendu 3D ;
Traitement de capteur ;
Sécurité ;
Modularité.
7 / 54
13. 3 - Portage
Principe : Faire fonctionner Android AOSP sur sa board.
Solution : Ecrire le BSP.
12 / 54
14. 3 - Portage
En quoi consiste un BSP Android ?
Fichiers de description (Makefiles) ;
Un kernel Linux configuré pour Android ;
Librairies HAL et leurs dépendances ;
Patchs dans Android (à éviter).
13 / 54
15. 3 - Portage
Ecrire un BSP Android : un travail collectif :
1 Le SoC Vendor (Qcom / FSL / Samsung / etc) ;
2 Le SoM Vendor (Quectel / Inforce / Varisite / etc) ;
3 Le fabricant du produit final.
14 / 54
16. 3 - Portage
Le SoC Vendor :
Fournit le kernel de référence ;
Fournit les HAL, binaires et configurations ;
Fournit le produit de référence (Makefiles).
15 / 54
17. 3 - Portage
Le SoM Vendor :
Ajoute des drivers au kernel ;
Ajoute des HAL et patche celles du SoC vendor ;
Adapte le produit de référence ou en fournit un nouveau.
16 / 54
18. 3 - Portage
Le fabricant :
Ajoute des drivers au kernel ;
Ajoute ou retire des HAL et patche celles existantes ;
Créé un nouveau produit héritant de celui de référence.
17 / 54
19. 3 - Portage
Comment faire ?
Créer un miroir des sources ;
Intégrer les patchs du SoC/SoM Vendors dans des branches ;
Créer un device spécifique ;
Regénérer les clefs de sécurité.
18 / 54
20. 3 - Portage
Miroir : Pourquoi ?
En cas d’arrêt ou de panne du serveur externe ;
Android est très volumineux, mieux vaut le télécharger depuis
des sources locales ;
La philosophie d’Android est de créer des branches ;
Google peut bannir temporairement votre adresse IP.
19 / 54
21. 3 - Portage
Miroir : Le bon outil
Android représente un grand nombre de dépots GIT (> 500 par
version et plus de 30go)
Android utilise des projets GIT dans des sous dossiers ;
Android propose un workflow difficilement modifiable.
Google propose un outil fait pour : Gerrit.
20 / 54
24. 3 - Portage
Device Spécifique : Pourquoi ?
Evite les patchs difficiles à maintenir ;
Permet l’évolutivité en cas de changement de base ;
Les outils permettent de le faire simplement.
23 / 54
25. 3 - Portage
Device Spécifique : Comment ?
Créer un projet git dans device/yourcompany/yourproduct ;
Créer les fichiers vendorsetup.sh AndroidProduct.mk
BoardConfig.mk et yourproduct.mk ;
Dans yourproduct.mk, hériter du produit voulu ;
Dans BoardConfig.mk, inclure le BoardConfig.mk d’origine.
24 / 54
26. 3 - Portage
Device Spécifique : vendorsetup.sh
Inclu lors de l’appel à envsetup.sh
addlunchcombo permet d’ajouter ses produits au lunch ;
Permet d’ajouter des fonctions spécifiques pour l’utilisateur.
25 / 54
27. 3 - Portage
Device Spécifique : AndroidProduct.mk
Liste les Makefiles à inclure pour votre produit.
Contient au moins yourproduct.mk
26 / 54
28. 3 - Portage
Device Spécifique : BoardConfig.mk
Contient la configuration de votre produit.
27 / 54
29. 3 - Portage
Device Spécifique : yourproduct.mk
La liste des binaires et applications à installer ;
La liste des fichiers de configuration à copier ;
La liste des produits desquels hériter.
28 / 54
30. 3 - Portage
Exemple : Portages de référence pour certains devices (Nexus /
Pixel et émulateur) :
Partie opensource dans device/ ;
Drivers propriétaires à télécharger pour les devices physiques.
29 / 54
31. 3 - Portage
Exemple : Google Nexus 5 - Android 6.0.1
Opensource dans device/lge/hammerhead ;
Propriétaire à télécharger : 3 archives contenant les drivers
La partie propriétaire ira dans vendor/
30 / 54
37. 4 - Customisation
Pourquoi customiser sa ROM ?
Ajouter des applications spécifiques ;
Modifier le comportement d’Android ;
Modifier l’UI ;
36 / 54
38. 4 - Customisation
Comment customiser sa ROM :
De la même façon que le portage est fait ;
Ajout de packages dans les Makefiles ;
Patchs dans les projets Android (à éviter).
37 / 54
40. 4 - Customisation
Deux types de ROM dites customs :
Les ROMs des grands constructeurs ;
Les ROMs de la communauté open source.
39 / 54
41. 4 - Customisation
Les limites de la customisation :
Maintenabilité des patchs ;
Ressemblance à l’Android Original voulue par les utilisateurs ;
La certification Android impose des règles très strictes.
40 / 54
42. 4 - Customisation
Android One : Android non modifié
Programme lancé par Google en 2014 ;
Android certifié sans "superflu" ;
Pas d’interface graphique spéciale.
41 / 54
44. 5 - Certification GMS
But : Obtenir les applications Google
Existe depuis le début d’Android ;
Interdiction de sortir un produit contenant les GApps sans ;
Impose des règles strictes ;
Possibilité d’avoir les applications pour tester (open gapps).
43 / 54
45. 5 - Certification GMS
Le process :
Signer avec Google toutes les licences et NDA ;
Suivre la conformité au CDD ;
Passer les CTS ;
Contacter une entreprise intermédiaire avec Google ;
Passer le GTS.
44 / 54
46. 5 - Certification GMS
La spécification : Le CDD
Document regroupant toutes les exigences de Google
(hardware et software) ;
Une version du document par version d’Android ;
Document très long (122 pages pour la version 8.1) ;
Difficile à suivre ;
Ne spécifie pas tout.
45 / 54
47. 5 - Certification GMS
Les tests : La CTS
Suite de tests automatiques pour la conformité des interfaces
avec les applications ;
A passer soit même et par le partenaire ;
Actuellement prend 3 jours à passer ;
Résultat sous forme d’un XML ;
100% OK obligatoire sauf dérogation.
46 / 54
48. 5 - Certification GMS
Les tests (bis) : La GTS
Tests supplémentaires ;
Passés seulement par votre partenaire et par Google ;
Très peu d’informations dessus.
47 / 54
49. 5 - Certification GMS
Les tests (ter) : La VTS
Introduit sous 8.0 avec Treble
Teste le BSP.
48 / 54
50. 5 - Certification GMS
Parmis les obligations :
Brand Google visible dès le bootloader ;
Applications Google visibles dès le HOME ;
Interdit d’avoir un autre store d’applications ;
Version minimale du kernel.
49 / 54
52. 6 - Conclusion
Android est un système complexe à appréhender ;
Cependant il est prévu pour être flexible et configurable ;
Smile peut vous accompagner sur vos projet Android pour
vous faire gagner du temps.
51 / 54