Cette page résume les principales fonctionnalités de la version Android 10 et fournit des liens vers des informations supplémentaires. Ces résumés de fonctionnalités sont organisés en fonction de l'emplacement de la documentation de la fonctionnalité sur ce site.
Construire
java_sdk_library
Android 10 introduit java_sdk_library
, une nouvelle règle de construction pour résoudre les problèmes de compatibilité des bibliothèques Java partagées. Les fabricants d'appareils peuvent utiliser ce mécanisme pour leurs propres bibliothèques Java partagées afin de maintenir la compatibilité ascendante de leurs API.
Architecture
Composants du système modulaire
Android 10 modularise certains composants du système Android et permet de les mettre à jour en dehors du cycle de publication normal d'Android. Certains modules incluent :
- Exécution Android
- Conscrypter
- Résolveur DNS
- DocumentsUI
- Services externes
- Médias
- ModuleMétadonnées
- La mise en réseau
- Contrôleur d'autorisation
- Données de fuseau horaire
Couche d'abstraction matérielle (HAL)
Android 10 ajoute la prise en charge de l'arrêt automatique des HAL lorsqu'ils n'ont aucun client.
Noyau
IBI
Android 10 inclut la prise en charge de nouveaux utilitaires de surveillance ABI pour aider à comparer, suivre et atténuer les modifications ABI du noyau qui affectent la compatibilité avec les modules du noyau.
Android 10 introduit également un vérificateur d'utilisations ABI basé sur des symboles. Le vérificateur peut détecter les binaires prédéfinis obsolètes au moment de la construction, afin que les développeurs de bibliothèques partagées puissent savoir quels binaires prédéfinis pourraient être endommagés par leur modification et quels binaires prédéfinis doivent être reconstruits.
Démon Android Live-Lock
Android 10 inclut le démon Android Live-Lock (llkd) , conçu pour détecter et atténuer les blocages du noyau.
vDSO32 sur ARM64
Android 10 prend en charge l'utilisation de vDSO32 sur les noyaux 64 bits , ce qui offre une augmentation de 0,4 % de la durée de vie de la batterie et d'autres améliorations des performances.
entrées fstab pour les premières partitions montées
Android 10 exige que les appareils spécifient des entrées fstab
pour les premières partitions montées à l'aide d'un fichier fstab
dans le disque virtuel de première étape.
HIDL
Décharger BroadcastQueue
Android 10 inclut une nouvelle BroadcastQueue
de déchargement vers les files d' attente d'arrière -plan et de premier plan existantes. La file d'attente de déchargement a le même comportement de priorité et de délai d'expiration que la file d'attente en arrière-plan. Pour éviter de bloquer la file d'attente en arrière-plan, où des diffusions plus intéressantes ou visibles par l'utilisateur peuvent avoir lieu, la file d'attente de déchargement gère la diffusion BOOT_COMPLETED
, que de nombreuses applications écoutent et qui peuvent prendre beaucoup de temps. La file d'attente de déchargement ne gère actuellement que la diffusion BOOT_COMPLETED
, mais peut potentiellement gérer d'autres diffusions longues.
Service de suspension du système
Android 10 remplace le thread de libsuspend
responsable du lancement de la suspension du système par le service SystemSuspend HIDL . Cette implémentation offre des fonctionnalités équivalentes aux versions précédentes tout en tirant parti des avantages de l'infrastructure Android HIDL.
safe_union en HIDL
Android 10 introduit safe_union
, un type d'union explicitement balisé, dans HIDL.
Configuration
ConfigStore HAL
Android 10 rend obsolète le ConfigStore HAL en raison d'une consommation élevée de mémoire et d'une utilisation difficile, et remplace le HAL par les propriétés du système .
API de schéma de fichier de configuration
La plateforme Android contient un grand nombre de fichiers XML pour stocker les données de configuration. La plupart des fichiers XML se trouvent dans la partition vendor
, mais ils sont lus dans la partition system
. Dans ce cas, le schéma du fichier XML sert d'interface entre les deux partitions, et donc le schéma doit être explicitement spécifié et doit évoluer de manière rétrocompatible. Avant Android 10, la plate-forme ne fournissait pas de mécanismes exigeant la spécification et l'utilisation du schéma XML, ou empêchant les modifications incompatibles du schéma. Android 10 fournit ce mécanisme, appelé API Config File Schema .
Propriétés système en tant qu'API
Les propriétés système accessibles à travers les partitions sont schématisées dans des fichiers de description sysprop
, et les API permettant d'accéder aux propriétés sont générées sous forme de fonctions concrètes pour C++ et de classes pour Java.
Objet d'interface fournisseur (VINTF)
VINTF
Les modifications apportées à VINTF dans Android 10 incluent :
- Dépréciation des balises de version AVB
- Ajout d'informations sur le noyau dans les packages OTA
- Building ODM se manifeste officiellement
- Ajout d'une matrice de compatibilité des produits
- Association d'une entrée de manifeste à un module HAL dans le système de build
Chargeur de démarrage
Disque RAM
Dans Android 10, le système de fichiers racine n'est plus inclus dans ramdisk.img
et est plutôt fusionné dans system.img
.
Créer des partitions ODM
Android 10 inclut la prise en charge de la création de partitions odm
à l'aide du système de construction Android. Vous pouvez utiliser une partition /odm
distincte pour les personnalisations, ce qui vous permet d'utiliser une seule image de fournisseur pour plusieurs SKU matériels. Cela permet aux fabricants de conception originale (ODM) de personnaliser les packages de support de carte (BSP) des fournisseurs de systèmes sur puce (SoC) en fonction de leurs appareils spécifiques (leurs cartes). Ils peuvent implémenter des modules de noyau pour des composants spécifiques à la carte, des démons spécifiques à la carte ou leurs propres fonctionnalités sur des couches d'abstraction matérielle (HAL). Ils peuvent également remplacer ou personnaliser les composants SoC.
Gestion des versions de l'en-tête de l'image de démarrage
Android 10 met à jour l' en-tête de l'image de démarrage vers la version 2, qui comprend une section pour stocker l'image blob de l'arborescence des appareils (DTB). Les tests Android 10 VTS vérifient que tous les appareils lancés avec Android 10 utilisent la version 2 de l'en-tête d'image de démarrage et incluent une image DTB valide dans le cadre des images de démarrage/récupération.
Images de récupération pour les appareils non-A/B
Sous Android 9 et versions ultérieures, l'image de récupération d'un appareil doit contenir des informations provenant de l'image de superposition . Les fabricants d'appareils peuvent utiliser DeviceTree ou Advanced Configuration and Power Interface (ACPI) pour décrire tous les appareils non détectables. Android 10 et versions ultérieures incluent la prise en charge des architectures qui utilisent ACPI au lieu du blob DeviceTree pour la superposition (DTBO).
AIDL stable
Android 10 ajoute la prise en charge du langage AIDL (Android Interface Definition Language) stable, une nouvelle façon de suivre l'interface de programme d'application (API)/l'interface binaire d'application (ABI) fournie par les interfaces AIDL.
Déplacer fastboot vers l'espace utilisateur
Android 10 ajoute la prise en charge des partitions redimensionnables en déplaçant l' implémentation de fastboot du chargeur de démarrage vers l'espace utilisateur.
Afficher
Lecture vidéo HDR
Android 10 prend en charge la lecture HDR10, VP9 et HDR10+ .
Classement du texte
La classification de texte utilise des techniques d'apprentissage automatique pour aider les développeurs à classer le texte. Android 10 introduit deux méthodes dans l'API TextClassifier : suggestConversationActions
et detectLanguage
. La méthode suggestConversationActions
génère des réponses et des actions suggérées à partir d'une conversation donnée et la méthode detectLanguage
détecte la langue du texte.
Prise en charge du rendu des polices Zawgyi
Zawgyi est la police la plus populaire au Myanmar. Android 9 et versions antérieures ne prenaient pas en charge le rendu de Zawgyi car il n'est pas compatible Unicode . Android 10 résout ce problème en incluant une police Unicode capable de restituer ensemble le birman Unicode et le Zawgyi. Aucun travail d'implémentation n'est nécessaire pour prendre en charge le rendu des polices Zawgyi sur les appareils lancés avec Android 10. Si vos appareils disposent d'une implémentation personnalisée pour prendre en charge Zawgyi, vous pouvez :
- Annulez ces modifications et utilisez la méthode prise en charge par la plateforme.
- Conservez la police Zawgyi commune dans votre système et utilisez le code local
my-qaag
dans votrefonts.xml
. Pour plus d'informations, consultez les notes de version Unicode CLDR sur Zawgyi (Qaag) .
Limites du masquage des icônes d'application
Android 10 limite la possibilité pour les applications de masquer leurs icônes de lancement. Si une application n'a pas d'activité de lancement activée, le système affiche une activité synthétisée dans le lanceur ; cette activité synthétisée représente la page de détails de l'application dans les paramètres système.
Pour plus d'informations sur la logique utilisée pour afficher les icônes d'application, y compris les types d'applications dont les icônes d'application ne sont pas affichées, consultez la documentation de getActivityList()
dans la référence de l'API.
Paramètres
Pour améliorer l'accessibilité, Android 10 inclut des paramètres de délai d'expiration personnalisables par l'utilisateur. Les modifications de l'API et des paramètres sont fournies avec Android 10. Si vous personnalisez vos paramètres, assurez-vous que cette fonctionnalité est prise en charge. Si certains éléments de l'interface utilisateur expirent sur votre appareil, utilisez l' API de délai d'attente sur ceux-ci. Pour plus d'informations, consultez les directives d'accessibilité des développeurs Android .
Compatibilité
Document de définition de compatibilité Android (CDD)
Le document de définition de la compatibilité Android 10 itère sur les versions précédentes avec des mises à jour pour les nouvelles fonctionnalités et des modifications des exigences pour les fonctionnalités précédemment publiées.
Essais
Suite de tests de compatibilité (CTS)
Android CTS dispose d'une page de notes de version distincte qui répertorie de nombreuses modifications importantes pour Android 10.
Téléchargements CTS
Les packages CTS prenant en charge Android 10 sont disponibles sur la page Téléchargements CTS . Le code source des tests inclus peut être synchronisé avec la balise android-cts-10_r1
dans l'arborescence open source.
Cale CTS APEX
Android 10 introduit un package appelé CtsShimApex
, qui doit être préinstallé sur un appareil pour écrire des tests CTS pour la gestion APEX.
Mode harnais de test
Le mode harnais de test CTS aide les développeurs à automatiser les tests d’un appareil ou d’une flotte d’appareils.
Mode applications instantanées
À partir d'Android 10, CTS s'exécute en mode Applications instantanées , ce qui signifie installer l'APK de test en tant qu'application instantanée et exécuter les tests.
En plus d'un mode CTS pour les applications instantanées, Android 10 inclut CTS Verifier pour les applications instantanées
Test audio professionnel CTS Verifier
Android 10 ajoute un test CTS Verifier pour la conformité Pro Audio .
Tests MIDI du vérificateur CTS
Dans Android 10, le test MIDI CTS Verifier teste la fonctionnalité MIDI avec des interfaces MIDI USB, des interfaces MIDI Bluetooth et un chemin de périphérique MIDI virtuel.
Interprétation des tests CTS
Android 10 met à jour le mécanisme d' interprétation des résultats CTS .
Suite de tests des fournisseurs (VTS)
Test VTS avec disque virtuel de débogage
Dans Android 10, l'image système générique (GSI) utilisée pour exécuter les tests de conformité CTS-on-GSI/VTS passe du débogage utilisateur au type de build utilisateur, car GSI est une version signée. Cependant, la commande adb root
qui accorde à un hôte des autorisations root sur l'appareil Android testé n'est pas disponible dans une version utilisateur. C'est un problème car VTS nécessite l'exécution de adb root
.
Le disque virtuel de débogage est introduit pour rendre possible adb root
, si l'appareil est déverrouillé. Cela simplifie le flux de test en réutilisant le même build utilisateur system.img
(soit GSI, soit le system.img
de l'OEM).
Validation du compositeur matériel
Android 10 ajoute une nouvelle classe de test VTS pour la validation de Hardware Composer via l'interface readback
dans IComposerClient.hal
. Si les fournisseurs n'implémentent pas readback
, les tests réussissent automatiquement.
Débogage
Charger des bibliothèques partagées avec différents chargeurs de classes
Sous Android 9 et versions antérieures, les applications chargeaient leurs bibliothèques partagées Java liées dans le chargeur de classes de l'application. Dans Android 10, le framework utilise un chargeur de classe différent de celui de l'application pour charger les bibliothèques partagées Java liées uses-library
ouuses uses-static-library
.
En général, les applications ne devraient pas s'appuyer sur l'utilisation d'un chargeur de classe spécifique, ce changement ne devrait donc pas interrompre le comportement de l'application. Cependant, si une application repose sur l’utilisation d’un seul chargeur de classe, ce comportement est interrompu. De plus, la visibilité privée du package des classes dans le même package est toujours prise en charge, mais n’est pas prise en charge dans les bibliothèques partagées.
Les fabricants d'appareils peuvent constater des problèmes de compatibilité des applications lorsqu'ils testent leurs appareils exécutant Android 10.
Fonctions de sécurité
Pour une liste plus complète des améliorations liées à la sécurité et à la confidentialité uniquement, consultez la page des améliorations de la sécurité et de la confidentialité d'Android 10 .
Authentification faciale
L'authentification faciale permet aux utilisateurs de déverrouiller leur appareil simplement en regardant l'avant de leur appareil. Android 10 ajoute la prise en charge d'une nouvelle pile d'authentification faciale capable de traiter en toute sécurité les images de la caméra, préservant ainsi la sécurité et la confidentialité lors de l'authentification faciale sur le matériel pris en charge. Android 10 offre également un moyen simple pour les implémentations conformes à la sécurité de permettre l'intégration d'applications pour des transactions telles que les services bancaires en ligne ou d'autres services.
Accès étendu
Les agents de confiance, le mécanisme sous-jacent utilisé par les mécanismes d'authentification tertiaires tels que Smart Lock, ne peuvent prolonger le déverrouillage que dans Android 10. Les agents de confiance ne peuvent plus déverrouiller un appareil verrouillé et ne peuvent garder un appareil déverrouillé que pendant quatre heures maximum.
Chiffrement
OEMCrypto
Android 10 utilise l'API OEMCrypto version 15.
Essai
Désinfectant pour limites
Android 10 déploie BoundsSanitizer (BoundSan) dans Bluetooth et codecs. BoundSan utilise le désinfectant pour limites d'UBSan. Cette atténuation est activée au niveau de chaque module. Il permet de sécuriser les composants critiques d’Android et ne doit pas être désactivé. BoundSan est activé dans les codecs suivants :
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
-
libaac
-
libxaac
Désinfection par débordement entier
Android 10 active la désinfection par débordement d'entier (IntSan) dans les codecs logiciels. Assurez-vous que les performances de lecture sont acceptables pour tous les codecs qui ne sont pas pris en charge par le matériel de l'appareil. IntSan est activé dans les codecs suivants :
-
libFLAC
-
libavcdec
-
libavcenc
-
libhevcdec
-
libmpeg2
-
libopus
-
libvpx
-
libspeexresampler
-
libvorbisidec
Mémoire d'exécution uniquement
Par défaut, les sections de code exécutable pour les binaires du système AArch64 sont marquées comme étant en exécution seule (non lisible) afin de renforcer l'atténuation des attaques de réutilisation de code juste à temps. Le code qui mélange les données et le code et le code qui inspecte délibérément ces sections (sans remapper au préalable les segments de mémoire comme lisibles) ne fonctionnent plus. Les applications avec un SDK cible d'Android 10 (niveau d'API 29 ou supérieur) sont concernées si l'application tente de lire des sections de code de bibliothèques système activées par la mémoire d'exécution seule (XOM) en mémoire sans d'abord marquer la section comme lisible.
Scudo
Scudo est un allocateur de mémoire dynamique en mode utilisateur conçu pour être plus résistant aux vulnérabilités liées au tas. Il fournit les primitives standard d'allocation et de désallocation C, ainsi que les primitives C++.
ShadowCallStack
ShadowCallStack
(SCS) est un mode d'instrumentation LLVM qui protège contre les écrasements d'adresse de retour (comme les débordements de tampon de pile) en enregistrant l'adresse de retour d'une fonction dans une instance ShadowCallStack
allouée séparément dans le prologue de fonction des fonctions non-feuille et en chargeant l'adresse de retour de l'instance ShadowCallStack
dans l'épilogue de la fonction.
l'audio
AudioHAL
Android 10 inclut les nouvelles fonctionnalités suivantes pour l'audio HAL .
-
AudioSource
-
AudioFormat
-
AudioChannelMask
Des exigences supplémentaires sont ajoutées pour la mise en œuvre du HAL audio et du sous-système.
Effets de prétraitement
Android fournit des effets de prétraitement , tels que l'annulation de l'écho acoustique, le contrôle automatique du gain et la suppression du bruit. Android 10 inclut de nouvelles exigences pour la capture avec VOICE_COMMUNICATION
.
Responsable de la politique audio
Android 10 inclut une refactorisation importante du gestionnaire de politiques audio pour offrir plus de flexibilité pour prendre en charge des cas d'utilisation automobiles complexes.
Audio haute résolution
Android 10 inclut les améliorations suivantes pour l'audio haute résolution .
- Prise en charge du flotteur
- Prise en charge de la fréquence 192 KHz
- Prise en charge de huit canaux
- Inclusion d’informations de timing
Capture simultanée
Android 10 améliore l'expérience utilisateur de capture simultanée qui nécessite que plusieurs captures audio actives se produisent simultanément.
AudioLectureCapture
Android 10 contient une nouvelle API appelée AudioPlaybackCapture
, qui donne aux applications la possibilité de copier l'audio lu par d'autres applications. Cette fonctionnalité est similaire à la capture d'écran, mais pour l'audio. Le principal cas d’utilisation consiste à permettre aux applications de streaming de capturer l’audio joué par les jeux.
L'API de capture n'affecte pas la latence de l'application dont l'audio est capturé.
MIDI
Android 10 facilite le portage d'applications audio professionnelles utilisant MIDI vers la plate-forme Android à l'aide de l' API AMidi
NDK .
Caméra
Pour un résumé des modifications apportées à l'API de la caméra, au HAL de la caméra et au module de caméra introduits dans Android 10, consultez Mises à jour de la caméra Android 10 .
Améliorations de la confidentialité du cadre de caméra
Android 10 introduit des améliorations en matière de confidentialité dans le cadre de la caméra. Pour éviter d'exposer des informations de caméra statiques potentiellement sensibles dans CameraCharacteristics
sans le consentement de l'utilisateur, les applications doivent obtenir l'autorisation CAMERA
pour récupérer des métadonnées statiques avec une balise sensible à la confidentialité à l'aide de la méthode getCameraCharacteristics
.
Pour obtenir une liste des clés caractéristiques de la caméra qui nécessitent l’autorisation CAMERA
, appelez la méthode getKeysNeedingPermission
.
Requête de reconfiguration de session
Android 10 ajoute une fonctionnalité de requête de reconfiguration de session , qui permet d'améliorer les performances grâce à un meilleur contrôle sur la logique de reconfiguration des paramètres de session internes.
API de gestion du tampon HAL3 de la caméra
Android 10 introduit des API facultatives de gestion de tampon HAL3 de caméra qui vous permettent d'implémenter une logique de gestion de tampon pour obtenir différentes mémoires et capturer des compromis de latence dans les implémentations de caméra HAL.
Caméra HAL, commutateur de caméra physique dynamique
Android 10 introduit une balise de métadonnées dynamiques, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
, qui indique la caméra physique sous-jacente active d'un appareil photo logique. Pour plus d'informations, consultez Prise en charge multi-caméras .
Prise en charge du masquage des caméras physiques
Sous Android 10, la caméra HAL peut réduire le nombre de caméras physiques pouvant être directement ouvertes par une application. Pour plus de détails, consultez Prise en charge multi-caméras .
API VNDK de Camera2
Dans Android 10, les modules du fournisseur peuvent accéder et contrôler les appareils photo via deux nouvelles interfaces HIDL standard, android.frameworks.cameraservice.service@2.0
et android.frameworks.cameraservice.device@2.0
. Pour rendre l'utilisation des interfaces HIDL plus pratique, Android 10 introduit également une bibliothèque disponible auprès du fournisseur, libcamera2_vendor
. Cette bibliothèque est similaire à la bibliothèque Camera NDK , avec quelques modifications mineures.
Configurations de flux
Android 10 ajoute des fonctionnalités qui permettent aux fournisseurs de caméras d'annoncer les flux de caméra recommandés aux clients de caméra et de prendre en charge une API pour interroger les combinaisons de flux .
Exigences relatives à la combinaison de flux de caméra
Les appareils exécutant Android 10 ne sont plus tenus de prendre en charge les combinaisons de flux avec les flux de sous-caméras physiques. Cependant, les appareils exécutant Android 10 avec la version 3.5 de l'appareil HAL de la caméra doivent prendre en charge isStreamCombinationSupported()
pour permettre aux applications de demander si une combinaison de flux contenant des flux physiques est prise en charge.
Pour plus d'informations, consultez Prise en charge multi-caméras .
Imagerie HEIF
Android 10 prend en charge nativement les images au format de fichier image à haute efficacité (HEIF) , qui offrent une qualité d'image améliorée et des tailles plus petites par rapport aux images JPEG. Les appareils doivent disposer d'un encodeur HEIC ou HEVC pour prendre en charge les images HEIF.
Caméras monochromes
Android 10 offre une prise en charge supplémentaire du format de flux Y8, des métadonnées statiques du réseau de filtres couleur monochromes et proche infrarouge (NIR) et des fonctions DngCreator
pour les caméras monochromes .
Connectivité
Appel et messagerie
Numéros d'urgence et appels d'urgence
Android 10 offre une prise en charge améliorée des appels d'urgence . En cas d'urgence, les appareils prenant en charge IRadio HAL v1.4 peuvent lancer un appel d'urgence à l'aide de numéros d'urgence récupérés à partir d'une source telle qu'une carte SIM, le signal réseau ou la base de données Android. Les numéros peuvent être classés en fonction des catégories de services d'urgence telles que la police, les pompiers et l'ambulance.
API d'appel de groupe
Les API d'appel de groupe sont une extension des API eMBMS ajoutées dans Android 9. Les nouvelles API définissent une norme permettant aux applications de rejoindre et de diffuser des appels de groupe diffusés sur cellule en interagissant avec les packages middleware eMBMS. Les appels de groupe nécessitent l'assistance du fournisseur de chipset, du fournisseur de middleware et de l'opérateur de téléphonie mobile pour fonctionner correctement. La documentation destinée aux développeurs se trouve sur développeur.google.com .
Capacités SIM à distance
Android 10 introduit des fonctionnalités SIM distantes qui permettent aux applications de messagerie sur un appareil hôte Android d'envoyer des messages SMS via des téléphones à l'aide de mécanismes tels que Bluetooth. Pour plus d'informations, consultez la documentation de référence pour la méthode getSubscriptionType
et la constante SUBSCRIPTION_TYPE_REMOTE_SIM
.
Plusieurs eSIM
Dans Android 10, la classe EuiccManager
prend en charge les appareils dotés de plusieurs cartes SIM intégrées (eSIM) ou eUICC.
Mises à jour eSIM
Pour les appareils exécutant Android 10 prenant en charge les eSIM, un tableau d'ID d'emplacement eUICC non amovible doit être défini. Les appareils doivent également prendre en charge IRadio HAL v1.4 et IRadioConfig HAL v1.2. Pour plus d'informations, consultez Implémentation des exigences eSIM et HAL .
5G non autonome (NSA)
Android 10 ajoute la prise en charge de la 5G non autonome (NSA) . 5G NSA est une solution pour les réseaux 5G où le réseau est pris en charge par une infrastructure 4G existante. Sur Android 10, les appareils peuvent afficher une icône 5G sur la barre d'état lorsqu'un appareil se connecte à un réseau 5G.
Suggestion de compte téléphonique
Android 10 introduit le service de suggestion de compte téléphonique , qui permet d'afficher des suggestions de comptes téléphoniques aux utilisateurs lors d'un appel.
Transporteur
Migrer les paramètres du réseau mobile
Android 10 a réorganisé le code de l'interface utilisateur des paramètres du réseau mobile et l'a déplacé de la pile de téléphonie vers la pile de paramètres. Pour prendre en charge le code migré, modifiez les valeurs de configuration des paramètres de réseau mobile suivantes des ressources Android aux ressources CarrierConfig
:
config_world_mode
-> CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL
config_support_tdscdma
-> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL
config_support_tdscdma_roaming_on_networks
-> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY
config_enabled_lte
-> CarrierConfigManager#KEY_LTE_ENABLED_BOOL
Identifiants d'appareil
Les identifiants persistants de l'appareil (IMEI/MEID, IMSI et numéro de série de build) sont protégés par une autorisation privilégiée avec un accès également accordé aux applications du propriétaire de l'appareil et du profil. Étant donné que les numéros de série IMSI et SIM sont fournis par l'opérateur, l'accès à ces identifiants est accordé aux colis bénéficiant des privilèges de l'opérateur.
Wifi
Sélection de réseau
Android évalue en permanence la qualité du réseau connecté et évalue la qualité des réseaux disponibles. Android 10 a mis à jour les algorithmes et les procédures de sélection et de commutation entre les réseaux Wi-Fi .
Analyse de déchargement du réseau Wi-Fi préféré
Android 10 introduit une méthode API facultative nommée setDeviceMobilityState()
dans WifiManager
qui augmente l'intervalle entre les analyses de déchargement réseau préféré (PNO) lorsque l'appareil est à l'arrêt afin de réduire la consommation d'énergie.
Wi-Fi de l'opérateur
Sous Android 10, les appareils dotés de la fonctionnalité Wi-Fi de l'opérateur se connectent automatiquement aux réseaux Wi-Fi de l'opérateur configurés (réseaux avec certificats de clé publique).
Connexion Wi-Fi facile
Dans Android 10, les appareils peuvent utiliser Wi-Fi Easy Connect , qui utilise le protocole de provisionnement des appareils (DPP) introduit par la Wi-Fi Alliance (WFA), pour provisionner et configurer les appareils Wi-Fi.
Mode Wi-Fi à faible latence
Android 10 introduit un mode Wi-Fi à faible latence , qui configure la puce Wi-Fi pour réduire la latence.
Serveur DHCP mis à jour
Dans le cadre de la formation d'un service parapluie "IP Server", dnsmasq
est en cours de suppression. Android 10 remplace son utilisation fonctionnelle de serveur DHCPv4 par un composant distinct, principalement écrit en Java pour mieux s'intégrer au plan de contrôle du framework Java. Cela améliore la sécurité et la possibilité de mise à jour du serveur DHCP. Pour plus de détails, consultez packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
.
Aucune action n'est requise pour mettre en œuvre ce changement : tous les appareils commercialisés et mis à niveau vers Android 10 utilisent DhcpServer
par défaut. Si vous avez des personnalisations sur le serveur DHCP, vous pouvez revenir au comportement d'Android 9 en définissant le paramètre global tether_enable_legacy_dhcp_server=1
. Le nouveau DhcpServer
est inclus dans le module des composants réseau, donc toute personnalisation de la fonctionnalité du serveur DHCP doit être effectuée en amont.
WPA3 et Wi-Fi améliorés ouverts
Android 10 ajoute la prise en charge des normes de sécurité Wi-Fi Protected Access 3 (WPA3) et Wi-Fi Enhanced Open pour offrir une meilleure confidentialité et une meilleure robustesse contre les attaques connues.
Wi-Fi Direct
Wi-Fi Direct , également connu sous le nom de Wi-Fi P2P, permet aux appareils pris en charge de se découvrir et de se connecter directement les uns aux autres à l'aide du protocole Wi-Fi Direct sans accès à Internet ou au réseau cellulaire.
Améliorations de la randomisation MAC
À partir d'Android 10, la randomisation MAC est activée par défaut pour le mode client, SoftAp et Wi-Fi Direct. Les appareils doivent fournir une option permettant d'activer ou de désactiver la randomisation MAC pour chaque SSID dans l'interface utilisateur du système.
Point de passe R2
Android 10 introduit la prise en charge des fonctionnalités Passpoint R2 . Passpoint R2 implémente l'inscription en ligne (OSU), une méthode standard pour provisionner de nouveaux profils Passpoint. Android 10 prend en charge la fourniture de profils EAP-TTLS à l'aide de SOAP-XML.
NFC
NFC sécurisé
Secure NFC permet d'activer l'émulation de carte NFC hors hôte uniquement lorsque l'écran de l'appareil est déverrouillé. La mise en œuvre de cette fonctionnalité donne aux utilisateurs la possibilité d'activer Secure NFC pour une sécurité améliorée.
Android Beam est obsolète
Dans Android 10, Android Beam n'est plus requis et les interfaces et méthodes suivantes sont obsolètes.
Interfaces :
-
NfcAdapter.CreateBeamUrisCallback
-
NfcAdapter.CreateNdefMessageCallback
-
NfcAdapter.OnNdefPushCompleteCallback
Méthodes :
-
createBeamUris
-
invokeBeam
-
isNdefPushEnabled
-
setBeamPushUris
-
setBeamPushUrisCallback
-
setNdefPushMessage
-
setNdefPushMessageCallback
-
setOnNdefPushCompleteCallback
-
createNdefMessageCallback
-
onNdefPushCompleteCallback
Pour utiliser Android Beam, signalez la constante de fonctionnalité android.sofware.nfc.beam
.
Graphique
ASurfaceControl
Android 10 ajoute ASurfaceControl
, une nouvelle façon pour SurfaceFlinger
d'accepter les tampons.
Implémentation graphique
Couches OpenGL ES
Android 10 introduit un système de superposition pour GLES.
EGL1.5
Android 10 implémente l' interface EGL 1.5 . Pour plus d'informations sur les nouvelles fonctionnalités d'EGL 1.5, consultez la spécification Khronos Releases EGL 1.5 .
Vulcan
Android 10 inclut la prise en charge des graphiques Vulkan 1.1. La plate-forme prend également en charge VK_KHR_swapchain
v70, de sorte que l'application Vulkan est capable de créer une VkImage
sauvegardée par la mémoire swapchain.
Taux de rafraîchissement des performances
Android 10 ajoute la prise en charge d'un taux de rafraîchissement des performances. Cette fonctionnalité est désactivée par défaut.
Interaction
Automobile
Audio automobile
Dans Android 10, le contexte Audio HAL est mappé à AudioAttributes.usage
pour identifier les sons. Android prend en charge une instance AUDIO_DEVICE_OUT_BUS
par contexte. IAudioControl
HAL fournit des extensions spécifiques au véhicule à Audio HAL .
Navigation gestuelle
Android 10 introduit une option pour une navigation système entièrement gestuelle. Pour plus d'informations sur la préparation des applications à utiliser cette fonctionnalité, consultez la page de navigation gestuelle sur le site des développeurs Android.
Les réseaux de neurones
Android 10 introduit des mises à jour de l'API Neural Networks et du Neural Networks HAL. Pour un résumé des modifications, voir Réseaux de neurones .
Documentation nouvelle et mise à jour sur les réseaux de neurones pour Android 10 :
- Aperçu
- AMatérielBuffer
- Exécutions en rafale et files d'attente de messages rapides
- Mise en cache des compilations
- Découverte et attribution de périphériques
- Extensions du fournisseur
Capteurs
Capteurs HAL 2.0
Sensors HAL 2.0 prend en charge l'utilisation de files d'attente de messages rapides (FMQ) pour envoyer des événements de capteur depuis HAL vers Android Sensors Framework.
Capteurs éteints
Android 10 inclut un paramètre de développeur pour désactiver tous les capteurs d'un appareil. Cette fonctionnalité aide les développeurs à tester les fonctionnalités de leur application dans des situations où ces capteurs deviennent indisponibles et donne également aux utilisateurs un moyen de contrôler les capteurs de leur appareil.
Si vos appareils utilisent l'implémentation par défaut de SensorService
, CameraService
et AudioPolicyService
, aucune personnalisation supplémentaire n'est nécessaire pour la conception de référence. Si vous disposez d'autres capteurs, consultez Personnalisation pour plus de détails sur la prise en charge de cette fonctionnalité.
Médias
Composants multimédias pouvant être mis à jour
Android 10 fournit des composants multimédias pouvant être mis à jour qui permettent de mettre à jour les composants du système modulaire liés aux médias via l'infrastructure Google Play Store ou via un mécanisme OTA (Over-the-Air) fourni par un partenaire.
DRM multimédia
Android 10 améliore l'utilité et la convivialité des API MediaDrm
Java et NDK.
Décodage
Android 10 prend en charge le décodage AV1 SW.
Autorisations
Android 10 fournit des configurations d'autorisations supplémentaires pour la transparence et la confidentialité des utilisateurs.
Fournisseur de contacts et informations sur les affinités
À partir d'Android 10, les données liées à l'affinité des contacts, gérées par le composant Fournisseur de contacts , sont accessibles différemment que dans Android 9 et versions antérieures. Ces changements concernant l'accessibilité des données améliorent la confidentialité des utilisateurs sur tous les appareils Android 10 qui utilisent le composant Fournisseur de contacts. La base de données sous-jacente ne contient plus de données d'affinités de contact. Par conséquent, les applications ne peuvent pas y écrire ni y lire.
Les changements apportés à Android 10 devraient avoir un impact important sur les API. Si vos applications s'appuient sur les fonctionnalités obsolètes mentionnées dans les informations sur le fournisseur de contacts et les affinités, vous souhaiterez peut-être mettre à jour vos applications pour compenser tout changement. De plus, si vous utilisez une version forkée du fournisseur de contacts, vous devez mettre à jour votre fournisseur de contacts.
Autorisations de localisation à trois états
Les autorisations de localisation à trois états dans Android 10 donnent aux utilisateurs plus de contrôle sur la manière dont les applications accèdent à la localisation de leurs appareils.
Rappel d'accès à l'emplacement en arrière-plan
Android 10 propose un rappel de localisation d'accès en arrière-plan , ce qui augmente la transparence sur le degré d'accès des applications à la localisation d'un appareil et aide les utilisateurs à garder le contrôle sur cet accès.
Restreindre les emplacements opportunistes
Lorsqu'une application demande la localisation d'un appareil, elle peut soit attendre la réponse à la demande, soit, en utilisant des écouteurs de localisation actifs, obtenir une mise à jour de localisation opportuniste. À partir d'Android 10, pour obtenir des mises à jour de localisation opportunistes , les développeurs doivent spécifier qu'ils ont besoin de mises à jour de localisation passives de la classe FusedLocationProviderClient
.
Lancement des applications en arrière-plan
Sous Android 10, les applications non privilégiées sans fenêtre visible ne peuvent pas se lancer automatiquement au premier plan. Ce changement supprime les popups publicitaires et les prises de contrôle malveillantes. Aucune action n’est requise pour activer cela.
Sandboxing d'applications
Dans Android 10, les applications ont une vue brute limitée du système de fichiers, sans accès direct aux chemins tels que /sdcard/DCIM
. Cependant, les applications conservent un accès brut complet à leurs chemins spécifiques au package, tel que renvoyé par toutes les méthodes applicables telles que Context.getExternalFilesDir()
. Les applications ont toujours un accès brut complet à leurs chemins spécifiques au package.
Utilisez les directives du bac à sable de l'application pour le partage de fichiers afin de fournir une granularité de partage de données appropriée.
Restreindre l'accès au presse-papiers des applications
Dans Android 10, l'accès au presse-papiers a changé afin que le contenu du presse-papiers ne puisse pas être regardé en appelant ClipboardManager.getPrimaryClip
ou en ajoutant un écouteur onPrimaryClipChangedListener
pour être averti lorsque le presse-papiers change. Cela augmente la confidentialité des utilisateurs et empêche les applications malveillantes de modifier le presse-papiers.
Sous Android 10, l'accès en lecture n'est autorisé qu'à l'application actuelle avec le focus de saisie ou au clavier actuel. L’appel d’écoute ClipboardManager.onPrimaryClipChanged()
se déclenche désormais uniquement pour les applications qui répondent à ces restrictions. ClipboardManager.getPrimaryClip
et ClipboardManager.getPrimaryClipDescription
renvoient null
si l'application demandeuse n'est pas l'éditeur de méthode de saisie (IME) par défaut ou n'a pas le focus de saisie.
Les autorisations d'exécution incluent la reconnaissance d'activité
Les utilisateurs voient désormais une boîte de dialogue de reconnaissance d'activité lorsqu'une application accède à l'emplacement de l'appareil en arrière-plan. Les autorisations d'exécution strictement restreintes doivent être correctement ajoutées à la liste blanche dans Android 10.
Autorisation MANAGE_DEVICE_ADMINS
Android 10 modifie l'autorisation MANAGE_DEVICE_ADMINS
de signature ou privilégiée à signature uniquement. Cela signifie que seules les applications signées par la plate-forme peuvent définir d'autres applications en tant qu'administrateur de l'appareil.
Améliorations de l'API de partage
Android 10 fournit un certain nombre de nouvelles fonctionnalités de l'API Android Platform liées au partage . Si vous avez modifié le code de la feuille de partage dans votre implémentation, assurez-vous que votre implémentation prend en charge ces nouvelles fonctionnalités. Si vous n'avez pas modifié le code de la feuille de partage dans votre implémentation, vous n'avez rien à faire pour prendre en charge ces nouvelles fonctionnalités.
Exécution Android (ART)
Configuration signée
La fonctionnalité Signed Config permet d'intégrer la configuration des restrictions d'interface non SDK dans les APK. Cela permet de supprimer des interfaces spécifiques non SDK de la liste noire, afin qu'AndroidX puisse les utiliser en toute sécurité. Avec ce changement, AndroidX peut ajouter la prise en charge de nouvelles fonctionnalités sur les anciennes versions d'Android.
Performance
Couche d'abstraction Cgroup
Android 10 comprend une couche d'abstraction de groupe de contrôle et des profils de tâches, que les développeurs peuvent utiliser pour décrire un ensemble de restrictions à appliquer à un thread ou à un processus.
Démon tueur de mémoire faible (lmkd)
Android 10 prend en charge un nouveau mode lmkd
qui utilise les moniteurs d'informations de décrochage de pression du noyau (PSI) pour la détection de la pression de la mémoire.
Pouvoir
Gestion de l'alimentation de la plateforme
Dans Android 10, le mode Doze peut être activé sur les appareils toujours allumés ainsi que sur les appareils alimentés par batterie.
Économiseur de batterie de routine
Android 10 introduit une nouvelle option de planification d'économie de batterie appelée basée sur la routine . L'économiseur de batterie de routine permet à une application choisie par le constructeur OEM de fournir des signaux au système pour une planification plus intelligente de l'économiseur de batterie. Cette option nécessite une configuration et est facultative à mettre en œuvre.
Statistiques de puissance HAL
Dans Android 10, IPowerStats.hal
remplace les API de collecte de statistiques de puissance dans IPower.hal
. Bien que le Power HAL prenne toujours en charge les API, elles seront migrées exclusivement vers le Power Statistics HAL à l'avenir.
Le HAL des statistiques d'alimentation comprend de nouvelles API pour prendre en charge la collecte de données à partir de mesures de puissance sur l'appareil, pour les appareils pris en charge. Les API de collecte de statistiques de puissance existantes sont également mises à jour pour améliorer la flexibilité. Les API de pointe de puissance restent en puissance HAL et ne changent pas.
Atténuation thermique
Le cadre thermique dans Android 10 résume le dispositif interfaces pour le capteur de température du sous-système thermique, y compris le processeur, le GPU, la batterie, la peau et le dispositif de refroidissement. Le cadre introduit une interface de sondage pour interroger l'état thermique pour lancer la limitation, et une interface de rappel pour envoyer un message à l'utilisateur lorsqu'un seuil est dépassé.
Android 10 fournit les nouveaux types de données via l'interface IThermalService
en utilisant ces trois nouvelles méthodes:
-
getCurrentThermalStatus()
Renvoie l'état thermique actuel de l'appareil comme un entier, sauf si l'appareil est en cours d'étranglement. -
addThermalStatusListener()
ajoute un auditeur. -
removeThermalStatusListener()
supprime un écouteur précédemment ajouté.
Les applications ajoutent et suppriment les auditeurs et accédez à l'état de la température dans la classe PowerManager
. Seul un service système de confiance tel qu'une API Android ou une API fabricant de périphériques peut accéder aux informations sur les événements causaux associés. Les fabricants d'appareils ou les fabricants de SOC doivent mettre en œuvre thermal HAL 2.0
pour permettre la pleine fonctionnalité du nouveau cadre thermique.
Pour un exemple de mise en œuvre de l'atténuation thermique, consultez l' implémentation de référence .
Mises à jour
Format de fichier Apex
Android Pony Express (APEX) est un nouveau format de conteneur utilisé dans le flux d'installation pour les composants du système modulaire.
Partitions dynamiques
Les partitions dynamiques introduisent un système de partitionnement d'espace utilisateur sur Android, permettant de créer, de redimensionner ou de détruire les partitions lors des mises à jour OTA. Les fabricants d'appareils n'ont pas à se soucier des tailles individuelles des partitions, telles que system
, vendor
et product
. Au lieu de cela, une grande super
partition est allouée et les sous-partitions peuvent être dimensionnées dynamiquement à l'intérieur.
Mises à jour du système dynamique
Dynamic System Mises à jour (DSU) vous permet de créer une image système Android que les utilisateurs peuvent télécharger depuis Internet et essayer sans risque de corrompre l'image du système actuelle.
Sauvegarde et restauration multi-utilisateurs
Android 10 prend en charge la fonctionnalité de sauvegarde et de restauration pour tous les utilisateurs d'un appareil. Auparavant, la sauvegarde et la restauration étaient uniquement disponibles pour l'utilisateur du système. La sauvegarde et la restauration des utilisateurs de non-systèmes sont désactivées par défaut car il n'a que une couverture partielle pour les paramètres, le papier peint et les composants système.
Superfiler
Les utilisateurs travaillant avec userdebug
ou eng
Builds s'attendent à pouvoir retirer efficacement la partition du système en tant qu'écriture en lecture, puis ajouter ou modifier n'importe quel nombre de fichiers sans reflasmer l'image système. Vous pouvez utiliser Overlayfs
, qui configure automatiquement le stockage du support pour un système de fichiers écrivatif comme référence supérieure, et monte sur le bas. Ces actions se produisent dans les demandes adb disable-verity
et adb remount
. Pour plus de détails, consultez le Readme Overlayfs dans AOSP.
Prise en charge de la bibliothèque partagée en mode de récupération
Dans Android 10, les bibliothèques partagées sont disponibles dans la partition de récupération, ce qui élimine la nécessité que tous les exécutables en mode de récupération soient statiques. Les bibliothèques partagées sont situées dans le répertoire /system/lib
(OR /system/lib64
pour les appareils 64 bits) dans la partition.
Pour ajouter une nouvelle bibliothèque partagée à la partition de récupération, ajoutez recovery_available: true
ou recovery: true
to Android.bp
de la bibliothèque partagée. Le premier installe la bibliothèque sur le système et les partitions de récupération, tandis que le second l'installe uniquement à la partition de récupération.
Le support de bibliothèque partagé ne peut pas être construit avec le système de construction basé sur Android. Pour convertir un exécutable statique existant pour le mode de récupération en un mode dynamique, supprimez LOCAL_FORCE_STATIC_EXECUTABLE := true
dans Android.mk
ou static_executable: true
(dans Android.bp
).
Point de contrôle des données de l'utilisateur (UDC)
Android 10 introduit la fonctionnalité de point de contrôle des données utilisateur (UDC) , qui permet à Android de revenir à son état précédent lorsqu'une mise à jour Android Over-the-Air (OTA) échoue.