Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Almacenamiento Adoptable

Android siempre ha admitido accesorios de almacenamiento externo (como tarjetas SD), pero estos accesorios se limitaban históricamente al almacenamiento de archivos simple, debido a su impermanencia esperada y la protección de datos mínima que se ofrece al almacenamiento externo tradicional . Android 6.0 introdujo la capacidad de adoptar medios de almacenamiento externos para actuar como almacenamiento interno.

Cuando se adopta un medio de almacenamiento externo, se formatea y encripta para funcionar solo con un solo dispositivo Android a la vez. Debido a que los medios están fuertemente vinculados al dispositivo Android que los adoptó, pueden almacenar de forma segura tanto aplicaciones como datos privados para todos los usuarios.

Cuando los usuarios insertan nuevos medios de almacenamiento (como una tarjeta SD) en una ubicación adoptable, Android les pregunta cómo quieren usar los medios. Pueden optar por adoptar el medio, qué formato y encriptarlo, o pueden continuar usándolo tal cual para el almacenamiento de archivos simple. Si eligen adoptar, la plataforma ofrece migrar el contenido de almacenamiento compartido principal (normalmente montado en /sdcard ) a los medios recientemente adoptados, liberando espacio valioso en el almacenamiento interno. A diferencia del almacenamiento tradicional, que está limitado a 2 TB debido al uso de MBR , el almacenamiento adoptable usa GPT y, por lo tanto, tiene un límite de almacenamiento de archivos de ~ 9ZB.

Las aplicaciones se pueden colocar en los medios de almacenamiento adoptados solo cuando el desarrollador ha indicado su apoyo a través del atributo android:installLocation . Las nuevas instalaciones de aplicaciones compatibles se colocan automáticamente en el dispositivo de almacenamiento con más espacio libre, y los usuarios pueden mover aplicaciones compatibles entre dispositivos de almacenamiento en la aplicación Configuración . Las aplicaciones movidas a los medios adoptados se recuerdan mientras se expulsan los medios y regresan cuando se vuelven a insertar.

Seguridad

La plataforma genera de forma aleatoria claves de cifrado para cada dispositivo adoptado y las almacena en el almacenamiento interno del dispositivo Android. Esto hace que los medios adoptados sean tan seguros como el almacenamiento interno. Las claves se asocian con dispositivos adoptados según el GUID de partición adoptado.

Si el dispositivo está configurado para utilizar cifrado basado en archivos (FBE) en su almacenamiento interno, el almacenamiento adoptable utiliza cifrado de metadatos y FBE. De lo contrario, el almacenamiento adoptable utiliza cifrado de disco completo (FDE).

El diseño en disco del dispositivo adoptado refleja fielmente la partición de datos interna, incluidas las etiquetas SELinux, etc. Cuando se admite multiusuario en el dispositivo Android, el dispositivo de almacenamiento adoptado también admite multiusuario con el mismo nivel de aislamiento que el interno almacenamiento.

Debido a que el contenido de un dispositivo de almacenamiento adoptado está fuertemente vinculado al dispositivo Android que lo adoptó, las claves de cifrado no deben poder extraerse del dispositivo principal y, por lo tanto, el dispositivo de almacenamiento no se puede montar en otro lugar.

Si su dispositivo utiliza FBE, consulte la documentación de FBE y la documentación de cifrado de metadatos para saber cómo configurar FBE y el cifrado de metadatos en el almacenamiento adoptable.

Rendimiento y estabilidad

Solo se debe considerar la adopción de medios de almacenamiento externos en ubicaciones estables, como una ranura dentro del compartimento de la batería o detrás de una cubierta protectora, para ayudar a evitar la pérdida accidental de datos o la corrupción. En particular, los dispositivos USB conectados a un teléfono o tableta nunca deben considerarse para su adopción. Una excepción común sería una unidad USB externa conectada a un dispositivo de estilo TV, porque el televisor completo generalmente se instala en una ubicación estable.

Cuando un usuario adopta un nuevo dispositivo de almacenamiento, la plataforma ejecuta un punto de referencia y compara su rendimiento con el almacenamiento interno. Si el dispositivo adoptado es significativamente más lento que el almacenamiento interno, la plataforma advierte al usuario sobre una experiencia posiblemente degradada. Este punto de referencia se derivó del comportamiento real de E / S de aplicaciones populares de Android. Actualmente, la implementación de AOSP solo advertirá a los usuarios más allá de un umbral único, pero los fabricantes de dispositivos pueden adaptar esto aún más, como rechazar la adopción por completo si la tarjeta es extremadamente lenta.

Los dispositivos adoptados deben formatearse con un sistema de archivos que admita permisos POSIX y atributos extendidos, como ext4 o f2fs . Para un rendimiento óptimo, se recomienda el sistema de archivos f2fs para dispositivos de almacenamiento basados ​​en flash.

Al realizar un mantenimiento inactivo periódico, la plataforma emite FI_TRIM a los medios adoptados tal como lo hace para el almacenamiento interno. La especificación actual de la tarjeta SD no admite el comando DISCARD ; pero, en cambio, el kernel ERASE comando ERASE , que el firmware de la tarjeta SD puede optar por utilizar con fines de optimización.

Pruebas

Para probar que el almacenamiento adoptable está funcionando, ejecute esta prueba CTS:

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

Para verificar el comportamiento de las unidades USB y tarjetas SD cuando un dispositivo no tiene una ranura incorporada o cuando el conector USB se usa para una conexión adb activa, use:

adb shell sm set-virtual-disk true