SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
ROM Android Customs
A. Grassein
Smile ECS
29 juin 2018
1 / 54
Plan
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
2 / 54
1 - Présentation
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
3 / 54
1 - Présentation
Adrien
Grassein
Expert
Technique
Smile ECS
7 ans d’expérience sur Android :
Parrot -> Automobile / Drone (Android 1.x 2.x 4.x
et 5.x) ;
Redbend (Harman/Samsung) -> Virtualisation
d’Android (Android 5.x 6.x et 7.x) ;
Smile -> Automobile / Médical / Bancaire /
Robotique (Android 6.x 7.x et 8.x).
4 / 54
2 - Android AOSP
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
5 / 54
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
2 - Android AOSP
Pour quels cas d’usage ?
Connectivité ;
Ecosystème applicatif ;
Multimédia ;
Rendu 3D ;
Traitement de capteur ;
Sécurité ;
Modularité.
7 / 54
2 - Android AOSP
5 systèmes différents ?
Android ;
AndroidTV ;
AndroidAuto ;
WearOs (anciennement AndroidWear) ;
AndroidThings (anciennement brillo).
8 / 54
2 - Android AOSP
5 systèmes aux bases communes
Mêmes sources ;
Mêmes architecture ;
Mêmes outils ;
Mêmes méchanismes.
==> Android Open Source Project (AOSP)
9 / 54
2 - Android AOSP
Architecture
10 / 54
3 - Portage
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
11 / 54
3 - Portage
Principe : Faire fonctionner Android AOSP sur sa board.
12 / 54
3 - Portage
Principe : Faire fonctionner Android AOSP sur sa board.
Solution : Ecrire le BSP.
12 / 54
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
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
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
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
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
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
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
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
3 - Portage
Gerrit Smile :
21 / 54
3 - Portage
Plugin : Gitilies :
22 / 54
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
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
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
3 - Portage
Device Spécifique : AndroidProduct.mk
Liste les Makefiles à inclure pour votre produit.
Contient au moins yourproduct.mk
26 / 54
3 - Portage
Device Spécifique : BoardConfig.mk
Contient la configuration de votre produit.
27 / 54
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
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
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
3 - Portage
Exemple : hammerhead
31 / 54
3 - Portage
Exemple : Produit Smile au dessus de hammerhead
32 / 54
3 - Portage
Exemple : Produit Smile au dessus de hammerhead
33 / 54
3 - Portage
Exemple : Produit Smile au dessus de hammerhead
34 / 54
4 - Customisation
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
35 / 54
4 - Customisation
Pourquoi customiser sa ROM ?
Ajouter des applications spécifiques ;
Modifier le comportement d’Android ;
Modifier l’UI ;
36 / 54
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
4 - Customisation
Exemple : Produit Google au dessus de hammerhead
38 / 54
4 - Customisation
Deux types de ROM dites customs :
Les ROMs des grands constructeurs ;
Les ROMs de la communauté open source.
39 / 54
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
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
5 - Certification GMS
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
42 / 54
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
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
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
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
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
5 - Certification GMS
Les tests (ter) : La VTS
Introduit sous 8.0 avec Treble
Teste le BSP.
48 / 54
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
6 - Conclusion
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
50 / 54
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
7 - Questions
1 Présentation
2 Android AOSP
3 Portage
4 Customisation
5 Certification GMS
6 Conclusion
7 Questions
52 / 54
7 - Questions
Questions ?
53 / 54
7 - Questions
Merci
54 / 54

Mais conteúdo relacionado

Semelhante a ROM Android Customs

Ppe 1 logiciel de supervision
Ppe 1 logiciel de supervisionPpe 1 logiciel de supervision
Ppe 1 logiciel de supervision
QuentinVERY
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
Firas Kouẞàa
 
Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé
Alphorm
 

Semelhante a ROM Android Customs (20)

Android pour l'industrie
Android pour l'industrieAndroid pour l'industrie
Android pour l'industrie
 
Prérequis au développement google android
Prérequis au développement google androidPrérequis au développement google android
Prérequis au développement google android
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
 
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
Présentation de Delphi 10.4 Sydney, C++Builder 10.4 Sydney et RAD Studio 10.4...
 
Développer des applications pour la TV
Développer des applications pour la TVDévelopper des applications pour la TV
Développer des applications pour la TV
 
Ppe 1 logiciel de supervision
Ppe 1 logiciel de supervisionPpe 1 logiciel de supervision
Ppe 1 logiciel de supervision
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
chap6_GL.pptx
chap6_GL.pptxchap6_GL.pptx
chap6_GL.pptx
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Cours android 2016
Cours android 2016Cours android 2016
Cours android 2016
 
Cours android 2016_partie1
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1
 
Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances Audit openERP 7.0: Mise en place &Optimisation de Performances
Audit openERP 7.0: Mise en place &Optimisation de Performances
 
GDR GPL 2015 - Processus de Configuration Flexible pour Lignes de Produits Lo...
GDR GPL 2015 - Processus de Configuration Flexible pour Lignes de Produits Lo...GDR GPL 2015 - Processus de Configuration Flexible pour Lignes de Produits Lo...
GDR GPL 2015 - Processus de Configuration Flexible pour Lignes de Produits Lo...
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)Presentation of GWT 2.4 (PowerPoint version)
Presentation of GWT 2.4 (PowerPoint version)
 
Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé Alphorm.com support de la formation Git avancé
Alphorm.com support de la formation Git avancé
 

Mais de Smile I.T is open

Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Smile I.T is open
 

Mais de Smile I.T is open (20)

Streamlined CMS - DrupalCon Session
Streamlined CMS - DrupalCon SessionStreamlined CMS - DrupalCon Session
Streamlined CMS - DrupalCon Session
 
Deploy your contents with entity share
Deploy your contents with entity share   Deploy your contents with entity share
Deploy your contents with entity share
 
[Smile] atelier spark - salon big data 13032018
[Smile]   atelier spark - salon big data 13032018[Smile]   atelier spark - salon big data 13032018
[Smile] atelier spark - salon big data 13032018
 
Séminaire E-commerce "J'ai mal à mon catalogue" by Smile & Akeneo
Séminaire E-commerce "J'ai mal à mon catalogue" by Smile & AkeneoSéminaire E-commerce "J'ai mal à mon catalogue" by Smile & Akeneo
Séminaire E-commerce "J'ai mal à mon catalogue" by Smile & Akeneo
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
 
Séminaire Smile - Réussir son application Métier
Séminaire Smile - Réussir son application MétierSéminaire Smile - Réussir son application Métier
Séminaire Smile - Réussir son application Métier
 
Blend Web Mix - Hackathon, Quand on ne sait pas où on va, autant y aller le ...
Blend Web Mix - Hackathon, Quand on ne sait pas où on va, autant y aller le ...Blend Web Mix - Hackathon, Quand on ne sait pas où on va, autant y aller le ...
Blend Web Mix - Hackathon, Quand on ne sait pas où on va, autant y aller le ...
 
eZ conference - Symfony Bundle enabling webfactory features
eZ conference - Symfony Bundle enabling webfactory featureseZ conference - Symfony Bundle enabling webfactory features
eZ conference - Symfony Bundle enabling webfactory features
 
Les quick wins de l'UX
Les quick wins de l'UXLes quick wins de l'UX
Les quick wins de l'UX
 
Séminaire Smile & Akeneo : e-commerce - J'ai mal à mon catalogue
Séminaire Smile & Akeneo : e-commerce - J'ai mal à mon catalogueSéminaire Smile & Akeneo : e-commerce - J'ai mal à mon catalogue
Séminaire Smile & Akeneo : e-commerce - J'ai mal à mon catalogue
 
Webinar SMILE : "Découvrez Alfresco 5.1, la solution pour une gestion documen...
Webinar SMILE : "Découvrez Alfresco 5.1, la solution pour une gestion documen...Webinar SMILE : "Découvrez Alfresco 5.1, la solution pour une gestion documen...
Webinar SMILE : "Découvrez Alfresco 5.1, la solution pour une gestion documen...
 
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
 
Meet Magento : Connected store with magento 2
Meet Magento : Connected store with magento 2Meet Magento : Connected store with magento 2
Meet Magento : Connected store with magento 2
 
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / SmileSéminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
Séminaire IoT EISTI du 14 avril 2016 avec Open Wide / Smile
 
Présentation sur l'accessibilité numérique / Evènement université de Lille 3
Présentation sur l'accessibilité numérique / Evènement université de Lille 3 Présentation sur l'accessibilité numérique / Evènement université de Lille 3
Présentation sur l'accessibilité numérique / Evènement université de Lille 3
 
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
 
A high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTSA high profile project with Symfony and API Platform: beIN SPORTS
A high profile project with Symfony and API Platform: beIN SPORTS
 
Seminaire Drupal 8 à Nantes
Seminaire Drupal 8 à NantesSeminaire Drupal 8 à Nantes
Seminaire Drupal 8 à Nantes
 
Webinar Smile et WSO2
Webinar Smile et WSO2Webinar Smile et WSO2
Webinar Smile et WSO2
 
Seminaire drupal8 Lille
Seminaire drupal8 LilleSeminaire drupal8 Lille
Seminaire drupal8 Lille
 

ROM Android Customs

  • 1. ROM Android Customs A. Grassein Smile ECS 29 juin 2018 1 / 54
  • 2. Plan 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 2 / 54
  • 3. 1 - Présentation 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 3 / 54
  • 4. 1 - Présentation Adrien Grassein Expert Technique Smile ECS 7 ans d’expérience sur Android : Parrot -> Automobile / Drone (Android 1.x 2.x 4.x et 5.x) ; Redbend (Harman/Samsung) -> Virtualisation d’Android (Android 5.x 6.x et 7.x) ; Smile -> Automobile / Médical / Bancaire / Robotique (Android 6.x 7.x et 8.x). 4 / 54
  • 5. 2 - Android AOSP 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 5 / 54
  • 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
  • 8. 2 - Android AOSP 5 systèmes différents ? Android ; AndroidTV ; AndroidAuto ; WearOs (anciennement AndroidWear) ; AndroidThings (anciennement brillo). 8 / 54
  • 9. 2 - Android AOSP 5 systèmes aux bases communes Mêmes sources ; Mêmes architecture ; Mêmes outils ; Mêmes méchanismes. ==> Android Open Source Project (AOSP) 9 / 54
  • 10. 2 - Android AOSP Architecture 10 / 54
  • 11. 3 - Portage 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 11 / 54
  • 12. 3 - Portage Principe : Faire fonctionner Android AOSP sur sa board. 12 / 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
  • 22. 3 - Portage Gerrit Smile : 21 / 54
  • 23. 3 - Portage Plugin : Gitilies : 22 / 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
  • 32. 3 - Portage Exemple : hammerhead 31 / 54
  • 33. 3 - Portage Exemple : Produit Smile au dessus de hammerhead 32 / 54
  • 34. 3 - Portage Exemple : Produit Smile au dessus de hammerhead 33 / 54
  • 35. 3 - Portage Exemple : Produit Smile au dessus de hammerhead 34 / 54
  • 36. 4 - Customisation 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 35 / 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
  • 39. 4 - Customisation Exemple : Produit Google au dessus de hammerhead 38 / 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
  • 43. 5 - Certification GMS 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 42 / 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
  • 51. 6 - Conclusion 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 50 / 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
  • 53. 7 - Questions 1 Présentation 2 Android AOSP 3 Portage 4 Customisation 5 Certification GMS 6 Conclusion 7 Questions 52 / 54