Antecedentes: Tengo un dispositivo Android con memoria USB (por ejemplo, RikoMagic) que ejecuto principalmente en modo "sin cabeza". Entre otras cosas, ya he descubierto cómo cerrarlo mediante una combinación de adb y el comando interno "am":
adb shell am start -n android/com.android.server.ShutdownActivity
Ahora estoy tratando de descubrir cómo activar y desactivar el soporte de almacenamiento masivo USB. Llegué hasta que apareció la ventana de actividad de almacenamiento USB mediante el siguiente comando:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity
Desafortunadamente, no he podido encontrar la manera de enviar la "intención" equivalente para realmente "desmontar" o "dejar de compartir" el volumen compartido (o "montarlo" o "compartirlo"). El siguiente comando no hace nada:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity -a android.intent.action.MEDIA_UNSHARED file:///mnt/sdcard
¿Qué estoy haciendo mal? ¿Cuál es el encantamiento mágico para montar / desmontar el almacenamiento interno de un dispositivo Android?
Nota 1: Sé que existe el obvio comando "montar" / "desmontar" de Linux. Sin embargo, simplemente montar o desmontar el volumen no activará las funciones del sistema vitales para, por ejemplo, reiniciar o detener aplicaciones que se han movido a la tarjeta SD. Un "umount" probablemente fallará de todos modos cuando una aplicación en la tarjeta SD todavía esté activa.
Nota 2: Aparentemente hay un comando "setprop" que puede habilitar / deshabilitar el soporte de almacenamiento masivo USB hasta el próximo reinicio. Nuevamente, este enfoque de todo o nada no es lo que estoy buscando, sino la capacidad de activar y desactivar el almacenamiento masivo USB durante una sola sesión, como se puede hacer con la interfaz táctil.
adb shell setprop sys.usb.config mass_storage