Método app2sd
nativo, que colocaba archivos .asec
encriptados en la carpeta .android_secure
en la tarjeta SD externa, solo estaba disponible hasta Android 5. Para más detalles, consulta ¿Por qué el root no puede acceder al directorio ".android_secure" en la tarjeta SD externa?
A partir de Marshmallow, el método nativo para mover aplicaciones a la tarjeta SD externa solo funciona si la tarjeta SD está formateada como Almacenamiento Adoptable
(1, 2):
Los contenedores ASEC han sido descontinuados desde MNC, que es cuando introdujimos la función de "almacenamiento adoptable". El almacenamiento adoptable ofrece una experiencia de usuario mucho mejor, ya que movemos tanto el APK como los datos privados de la aplicación juntos como una sola unidad.
* MNC es Macadamia Nut Cookie; nombre en código de Android Marshmallow (6.x).
Y:
Las instalaciones nuevas en contenedores ASEC ya no son compatibles; utiliza el almacenamiento adoptable en su lugar.
Almacenamiento Adoptable es una tarjeta SD cifrada completamente, gestionada por vold
, no visible para el usuario como tarjeta SD externa. Mira aquí cómo difiere del Almacenamiento Portátil tradicional. También puedes formatear la tarjeta SD como parcialmente Adoptable y parcialmente Portátil.
Como el fenómeno pre-Marshmallow de app2sd
(3), solo las aplicaciones con installLocation
configurado como preferExternal
o auto
en el manifest
de la aplicación son movibles:
Las aplicaciones pueden ser colocadas en medios de almacenamiento adoptados solo cuando el desarrollador ha indicado soporte a través del atributo android:installLocation
.
Para aplicaciones con la ubicación de instalación auto
, la ubicación de instalación predeterminada (configurada con pm set-install-location
) decide dónde se instalará la aplicación. Consulta esta respuesta para más detalles.
Si deseas mover todas las aplicaciones, utiliza una solución de terceros como Apps2SD
o Link2SD
.
PD:
Un enfoque aún mejor es mover /data/media
en lugar de las aplicaciones. Crea una partición adicional en la tarjeta SD externa y, utilizando un script init.d
o el servicio init
de Android, monta post-fs-data
a /data/media
. Otros directorios más grandes como /data/app
o /data/data
también se pueden mover de la misma manera.
Si deseas mantener archivos cifrados en la tarjeta SD externa, esto se puede lograr a través de métodos nativos como dm-crypt
(FDE de Android) para el cifrado de dispositivos de bloques, ecryptfs
para el cifrado de sistemas de archivos apilados, o una solución de terceros como EncFS
para el cifrado apilado. El nuevo método nativo de cifrado de sistemas de archivos fscrypt
(FBE de Android) también podría funcionar, pero no lo he probado. Consulta detalles en esta respuesta.
RELACIONADO: