¿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.

  • Java.Lang.RuntimeException, setParameters falló en la versión de android (4.1.1)
  • Uso de DownloadManager para descargar en una nueva carpeta en el almacenamiento de teléfonos
  • establecer ubicación de instalación no funciona
  • Cambio de ruta de la tarjeta SD en Android Studio AVD Manager
  • Compruebe si la tarjeta SD está presente, boolean siempre es cierto
  • ¿Cómo puedo leer el archivo json de la tarjeta SD
  • Abra todas las imágenes de una carpeta (tarjeta SD) al mismo tiempo, haga clic en el botón
  • Almacenamiento externo de Android entre las marcas para móviles
  • Problemas con la tarjeta SD de Android
  • Copia de seguridad de Android y restauración de la base de datos desde y hacia la tarjeta SD
  • Copia los archivos de una carpeta de la tarjeta SD en otra carpeta de la tarjeta SD
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.