Stockage adoptable

Android a toujours pris en charge les accessoires de stockage externe (comme les cartes SD), mais ces accessoires étaient historiquement limités au simple stockage de fichiers, en raison de leur étanchéité attendue et la protection minimale des données sans frais stockage externe traditionnel. Avec Android 6.0, vous pouvez désormais adopter un support de stockage externe qui agit en tant qu'interne stockage.

Lorsque vous adoptez un support de stockage externe, il est formaté et chiffré pour n'utiliser avec un seul appareil Android à la fois. Parce que les médias sont étroitement liés à l'appareil Android qui l'a adopté, il peut stocker à la fois les applications et des données privées pour tous les utilisateurs.

Lorsque les utilisateurs insèrent un nouveau support de stockage (comme une carte SD) dans un appareil adoptable emplacement, Android lui demande comment il souhaite utiliser le contenu multimédia. Il peut choisir de d'adopter le contenu multimédia, de le formater et de le chiffrer, ou elle peut continuer à l'utiliser. tel quel pour faciliter le stockage de fichiers. Si elle choisit de l'adopter, la plate-forme lui propose migrer le contenu principal du stockage partagé (généralement installé /sdcard) aux nouveaux supports, libérant ainsi de l'espace précieux mémoire de stockage interne. Contrairement au stockage traditionnel, qui est limité à 2 To en raison de sa utilisation de MBR utilisations de l'espace de stockage adoptable GPT et a donc une limite de stockage de fichiers d'environ 9 Zo.

Les applications ne peuvent être placées sur un support de stockage adopté que si le développeur a a indiqué sa compatibilité via l'attribut android:installLocation. Les nouvelles installations d'applications compatibles sont automatiquement périphérique de stockage offrant le plus d'espace libre, et les utilisateurs peuvent déplacer les applications compatibles entre les périphériques de stockage dans l'application Paramètres. Applications adoptées les médias sont mémorisés lorsqu'ils sont éjectés, et revenir lorsque le support est réinséré.

Sécurité

La plate-forme génère des clés de chiffrement de manière aléatoire pour chaque appareil adopté. et les stocke dans la mémoire de stockage interne de l'appareil Android. Ce rend les supports adoptés aussi sécurisés que la mémoire de stockage interne. Les clés sont associés aux appareils adoptés en fonction du GUID de partition adopté.

Si l'appareil est configuré pour utiliser le chiffrement basé sur les fichiers (FBE) la mémoire de stockage interne, puis le stockage adoptable utilise à la fois le FBE et le chiffrement des métadonnées. Sinon, le stockage adoptable utilise full-disk le chiffrement (FDE).

La disposition sur disque de l'appareil adopté reflète fidèlement les données internes partition, y compris les libellés SELinux, etc. Lorsque le mode multi-utilisateur est pris en charge Android, le périphérique de stockage adopté est également compatible avec le mode multi-utilisateur le même niveau d'isolation que la mémoire de stockage interne.

Comme le contenu d'un périphérique de stockage adopté est étroitement lié au Appareil Android qui l'a adopté, les clés de chiffrement ne doivent pas être extraites depuis l'appareil parent. Par conséquent, le périphérique de stockage ne peut pas être installé ailleurs.

Si votre appareil utilise FBE, reportez-vous à la la documentation et les métadonnées sur le chiffrement pour découvrir comment configurer le chiffrement par FBE et le chiffrement des métadonnées stockage adoptable.

Performances et stabilité

Seuls les supports de stockage externes se trouvant dans des emplacements stables, comme un emplacement à l'intérieur d'un situé dans le compartiment à piles ou placé derrière un couvercle de protection, doit être envisagée afin d’éviter toute perte ou corruption accidentelles de données. En particulier, les clés USB connectés à un téléphone ou à une tablette ne doivent jamais être envisagés pour l’adoption. à l'exception des clés USB externes connectées à des téléviseurs appareil, car le téléviseur est généralement installé dans un endroit stable.

Lorsqu'un utilisateur adopte un nouveau périphérique de stockage, la plate-forme exécute une analyse comparative compare ses performances à celles de la mémoire de stockage interne. Si l'appareil adopté est beaucoup plus lent que la mémoire de stockage interne, la plate-forme avertit l'utilisateur l'expérience peut être dégradée. Ce benchmark a été déterminé à partir des E/S réelles le comportement des applications Android populaires. Actuellement, l'implémentation d'AOSP ne avertir les utilisateurs au-delà d'un seul seuil, mais les fabricants d'appareils peuvent adapter cela plus encore, par exemple refuser complètement l'adoption si la carte est extrêmement lente.

Les appareils adoptés doivent être formatés avec un système de fichiers compatible avec POSIX les autorisations et les attributs étendus, tels que ext4 ou f2fs Pour des performances optimales, le système de fichiers f2fs est recommandé pour les périphériques de stockage Flash.

Lors de la maintenance périodique en cas d'inactivité, la plate-forme FI_TRIM pour les supports adoptés comme c'est le cas pour le stockage interne. Les spécifications actuelles de la carte SD ne sont pas compatibles avec l'DISCARD Commande ; mais le noyau revient à la commande ERASE, le micrologiciel de la carte SD peut choisir d'utiliser à des fins d'optimisation.

Tests

Pour vérifier que le stockage adoptable fonctionne, exécutez ce test CTS:

cts-tradefed run commandAndExit cts-dev \
    -m CtsAppSecurityHostTestCases \
    -t android.appsecurity.cts.AdoptableHostTest

Pour vérifier le comportement des clés USB et des cartes SD lorsqu'un périphérique ne dispose pas d'un emplacement intégré ou lorsque le connecteur USB est utilisé pour un adb actif utilisez:

adb shell sm set-virtual-disk true