Sfondo: ho un dispositivo Android con chiavetta USB (ad es. RikoMagic) che eseguo principalmente in modalità "senza testa". Tra le altre cose, ho già capito come spegnerlo tramite una combinazione di adb e il comando interno "am":
adb shell am start -n android/com.android.server.ShutdownActivity
Ora sto cercando di capire come attivare e disattivare il supporto di archiviazione di massa USB. Sono arrivato a far apparire la finestra delle attività di archiviazione USB tramite il seguente comando:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity
Sfortunatamente non sono stato in grado di capire come inviare l '"intento" equivalente a "smontare" o "annullare" il volume condiviso (o "montare" o "condividerlo" per quella materia). Il seguente comando non fa nulla:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity -a android.intent.action.MEDIA_UNSHARED file:///mnt/sdcard
Che cosa sto facendo di sbagliato? Qual è l'incantesimo magico per montare / smontare la memoria interna di un dispositivo Android?
Nota 1: So che c'è l'evidente comando "mount" / "umount" di Linux. Tuttavia, il semplice montaggio o smontaggio del volume non attiverà le funzioni di sistema fondamentali, ad esempio per riavviare o arrestare le app che sono state spostate sulla scheda SD. Un "umount" probabilmente fallirà comunque quando un'app nella scheda SD è ancora attiva.
Nota 2: Apparentemente c'è un comando "setprop" che può abilitare / disabilitare il supporto di archiviazione di massa USB FINO AL riavvio successivo. Ancora una volta, questo approccio tutto o niente non è quello che sto cercando, ma la possibilità di attivare e disattivare l'archiviazione di massa USB durante una singola sessione, come può essere fatto dall'interfaccia touch.
adb shell setprop sys.usb.config mass_storage