¿Cómo mover aplicaciones spcific a / de la tarjeta sd usando ADB?

Fondo

Es posible configurar la instalación predeterminada en la tarjeta SD usando (basado en este enlace ):

para pre- API14:

adb shell pm setInstallLocation 2 

para API 14 y superiores:

 adb shell pm set-install-location 2 (Android 4.x) 

El problema

Esto sólo funciona para las aplicaciones recién instaladas (o simplemente ir manualmente sobre cada una de ellas y establecer allí), pero me gustaría saber cómo volver a instalar una aplicación ya instalada en la tarjeta SD (y también de nuevo a la memoria interna ).

Lo que he intentado

Traté de leer los comandos disponibles a través de ADB, y trató de ejecutar el siguiente comando:

 adb shell pm install -s -r -i com.example.test 

Pero no funcionó

La pregunta

Supongamos que una aplicación ya está instalada en el almacenamiento interno (o en la tarjeta SD), ¿cómo puedo usar ADB para volver a instalarla en la tarjeta SD (o en la interna)?

Aparentemente, es necesario proporcionar la ubicación del APK en lugar del nombre del paquete.

Después trabajé en mi final para VLC que instalé desde Play Store y originalmente estaba en almacenamiento interno:

 $ adb shell pm install -s -r /data/app/org.videolan.vlc.betav7neon-1.apk pkg: /data/app/org.videolan.vlc.betav7neon-1.apk Success $ 

Y volviendo al almacenamiento interno:

 $ adb shell pm install -f -r /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk pkg: /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk Success $ 

Actualización 1

A continuación se muestran los comandos respectivos con -i: specify the installer package name opción del -i: specify the installer package name .

Mover a la tarjeta SD:

 $ adb shell pm install -i "com.android.vending" -s -r /data/app/org.videolan.vlc.betav7neon-1.apk pkg: /data/app/org.videolan.vlc.betav7neon-1.apk Success 

Mover a almacenamiento interno:

 $ adb shell pm install -i "com.android.vending" -f -r /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk pkg: /mnt/asec/org.videolan.vlc.betav7neon-1/pkg.apk Success 

Actualización 2

El uso de -i es opcional, pero si no se utiliza la información del instalador se pierde durante el movimiento:

 $ adb shell pm list packages -3 -i package:org.videolan.vlc.betav7neon installer=com.android.vending $ adb shell pm install -s -r /data/app/org.videolan.vlc.betav7neon-1.apk pkg: /data/app/org.videolan.vlc.betav7neon-1.apk Success $ adb shell pm list packages -3 -i package:org.videolan.vlc.betav7neon installer=null 

Espero que esto ayude.

  • Android: guarda una imagen descargada de la URL en la tarjeta SD
  • ¿Cómo puedo extraer todos los archivos de una carpeta presente en la tarjeta SD
  • ¿Cuál es la diferencia entre el acceso al archivo desde la carpeta de activos o la tarjeta SD
  • Cómo guardar el archivo descargado en la tarjeta sd del gestor de descargas mediante programación en android
  • Error que abre el archivo del rastro: Ningún archivo o directorio (2)
  • ¿Por qué puedo escribir en "mnt / sdcard" y no en "mnt / extsd"?
  • ¿TODOS los dispositivos Android tienen una tarjeta SD interna?
  • Android - ¿Cómo crear la carpeta en sdcard con el icono de la aplicación con la esquina izquierda hacia abajo?
  • Solución al error INSTALL_FAILED_INSUFFICIENT_STORAGE en Android
  • Android: error de transferencia: sistema de archivos de sólo lectura
  • ¿Por qué getExternalFilesDirs () no funciona en algunos dispositivos?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.