11 votos

Mover la ubicación de la instalación en un dispositivo Lollipop Android 5 no rooteado

Tengo una Moto G (2ª generación) con Android 5.02 en ella. La tarjeta SD interna es de unos 8Gb y tengo una tarjeta SD externa con 16Gb de espacio libre.

Al mover la aplicación a SDCARD desde el menú de la aplicación se mueve a sdcard0 que es la tarjeta SD interna.

Comando Adb Shell:

pm get-install-location

me da:

0[auto]

Traté de establecer la ubicación de la instalación a través de:

pm set-install-location 2

Pero estoy recibiendo este error:

Error: java.lang.SecurityException: Package android does not belong to 2000

Creo que eso es quejarse de los permisos de Root.

Y porque es un intento de construcción de producción:

adb root

me da:

 adbd cannot run as root in production builds

¿Hay alguna forma de configurar las aplicaciones para que instalen sus datos en una tarjeta SD externa?

Gracias.

P.D.: No quiero instalar una romántica personalizada.

10voto

GiantTree Puntos 1234

Básicamente hablando: No se puede. Al menos no sin rootear .
Las principales razones por las que Android no le permite instalar una aplicación en su tarjeta SD externa son:

  1. Seguridad : Es la razón principal de esa restricción. Los sistemas de archivos básicos como NTFS o FAT (cualquier versión de los mismos) no permiten la administración de permisos como en Unix.
    Esto significa: cualquier aplicación sería capaz de escribir a cualquier archivo de ese almacenamiento.
    Pensando en aplicaciones maliciosas, podrían sustituir las aplicaciones adecuadas por otras falsas/infectadas, bloqueando tu teléfono y dejándolo inutilizable.

  2. Almacenamiento volátil : Su tarjeta SD externa no es segura para ser insertada en su dispositivo todo el tiempo. Puedes expulsarla en cualquier momento, lo que hace que tu tarjeta SD no sea una buena candidata para un almacenamiento permanente. Considere las aplicaciones que se ejecutan en su tarjeta SD y usted la expulsa. Esas aplicaciones se bloquearán y el resto de las aplicaciones guardadas en tu tarjeta SD también desaparecerán. No puedes usarlas en ese momento y los datos de esas aplicaciones también se ven afectados por la razón número uno.

0 votos

Tengo conocimientos de linux así que he considerado este enfoque: Me he dado cuenta de que la opción del menú de la aplicación "Mover a la SDCARD" ha creado una carpeta llamada Android en la sdcard0 (la interna) con los datos de las aplicaciones en ella; ¿funcionará crear un enlace simbólico (en la sdcard0) llamado Android a una carpeta llamada Android en la sdcard1?

0 votos

La cuestión es: Android sólo almacena aplicaciones datos y obb en /sdcard/sdcard0/Android . Las aplicaciones se almacenan en una carpeta oculta llamada .android_secure donde ni siquiera root tiene acceso (lo he probado en mi dispositivo, ni siquiera se puede cd a esa carpeta).

0 votos

En realidad, eso es precisamente lo que necesito. El principal problema que me hace pensar en esto es el datos especialmente con juegos pesados.. Las aplicaciones principales no son tan grandes en comparación con los datos que añaden después. Entonces, ¿crees que podría funcionar?

6voto

user4811490 Puntos 1

¡Básicamente puedes! ;)

  • Primero, ¡Arranque su teléfono!
  • Segundo, Crea una partición secundaria en tu tarjeta SD (Ext.4) >= 2GB y configúrala como primaria.
  • Tercero, descargar e instalar la aplicación Link2sd de la playstore. Abre la aplicación, y te pediré que crees un punto de montaje en tu segunda partición. Selecciona "Sí". Reinicie.

Después de reiniciar, CADA aplicación que instale irá automáticamente a la tarjeta SD.

Si no sabes cómo crear una búsqueda de particiones para una guía en Google, hay muchas.

0 votos

En realidad, eso es lo que intento evitar: instalar software de terceros. :-)

4voto

pr.nizar Puntos 6

Ha sido todo un viaje en busca de una respuesta que no implique el rooting, pero he acabado:

  1. Desbloquear mi bootloader

  2. Arranque en TWRP sin instalarlo:

    fastboot boot recovery.img
  3. Instalación de SuperSU de Chainfire con TWRP.

  4. Desde Emulador de terminal o adb de la cáscara:

    su
    pm set-install-location 2
  5. Desde el menú de una aplicación en Settings > Applications sólo empujando Move to SDCARD lo mueve* - sus datos y obb - a la SDCARD externa.

  6. Eliminación de SuperSU......

Full unroot

No... ¡no he hecho eso! 3:)

0voto

user4811490 Puntos 1

Eres un hombre muy equivocado

0voto

Crappy Coding Guy Puntos 3068

Ir a esta dirección http://developer.Android.com/tools/help/shell.html#shellcommands

Android 5 y superiores no lo soportan pm get-install-location

Intenta hacer una copia de seguridad de tu apk y sigue los pasos siguientes

adb shell pm install -r -s <path of your apk>

Ejemplo

adb shell pm install -r -s /storage/sdcard1/base.apk

-r significa reinstalar el apk con los datos existentes y -s significa sdcard

0 votos

" Android 5 y superiores no soportan este pm get-install-location "¿Cómo lo sabe? Prueba con esto: Android.googlesource.com/platform/frameworks/base/+/ . Es para Android 5.1.1. ¡Tengo soporte para este argumento en mi Android 5.0.2, 5.1.1 y 6.0.1!

0 votos

Lo siento, pero -s es para especificar en qué dispositivo debe operar adb (" -s <serialNumber> ").

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