2 votos

¿Cómo mover aplicaciones de almacenamiento interno a almacenamiento externo?

Estoy tratando de mover con Lucky Patcher (también con app2sd y la aplicación de stock de Samsung) algunas aplicaciones de almacenamiento interno a externo, pero cada vez con cada aplicación movible obtengo este mensaje:

java.lang.IllegalArgumentException: Ya no se admiten nuevas instalaciones en contenedores ASEC

Tengo un Samsung Galaxy S7 con Android 8.0 y root.

¿Sabes por qué sucede esto? ¿Quizás Android 8.0 ya no lo permite?

5voto

Jack Wade Puntos 231

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:

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X