Notes de version d'Android 10

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 :

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 votre fonts.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 :

Méthodes :

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 :

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:

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.