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