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

  • Visualización de imágenes de una carpeta específica de la tarjeta SD mediante una vista de cuadrícula
  • ¿Tengo que declarar WRITE_EXTERNAL_STORAGE y READ_EXTERNAL_STORAGE?
  • No puedo obtener la ruta real de la tarjeta SD extraíble. ¿Hay alguna manera de conseguir?
  • Instalar tarjeta SD Vs memoria del teléfono? Y por qué el tamaño de la aplicación es diferente?
  • Problemas de lectura inputStream desde un Uri y envío a través de un outputStream android
  • ¿Cómo obtener el Uri de una imagen almacenada en el SDCARD?
  • Cómo cargar JS y CSS desde SDCARD con el método loadDataWithBaseURL ()
  • ¿Cómo puedo mostrar la imagen en la aplicación de Android
  • Android: error de transferencia: sistema de archivos de sólo lectura
  • MediaStore.Images.Media.insertImage devuelve null al intentar guardar la imagen
  • ¿Existe alguna convención para el almacenamiento de tarjetas SD de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.