Contexte: J'ai un périphérique Android à clé USB (par exemple RikoMagic) que j'exécute principalement en mode "sans tête". Entre autres choses, j'ai déjà compris comment l'arrêter via une combinaison d'adb et de la commande interne "am":
adb shell am start -n android/com.android.server.ShutdownActivity
J'essaie maintenant de comprendre comment activer et désactiver la prise en charge du stockage de masse USB. J'ai obtenu jusqu'à ce que la fenêtre d'activité de stockage USB s'affiche via la commande suivante:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity
Malheureusement, je n'ai pas été en mesure de comprendre comment envoyer l '"intention" équivalente pour réellement "démonter" ou "dissocier" le volume partagé (ou "monter" ou "partager" d'ailleurs). La commande suivante ne fait rien:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity -a android.intent.action.MEDIA_UNSHARED file:///mnt/sdcard
Qu'est-ce que je fais mal? Quelle est l'incantation magique pour monter / démonter le stockage interne d'un appareil Android?
Note 1: Je sais qu'il y a la commande évidente Linux "mount" / "umount". Cependant, le simple montage ou démontage du volume ne déclenchera pas les fonctions système vitales pour, par exemple, le redémarrage ou l'arrêt des applications qui ont été déplacées sur la carte SD. Un "umount" échouera probablement de toute façon quand une application sur la carte SD est toujours active.
Remarque 2: Apparemment, il existe une commande "setprop" qui peut activer / désactiver la prise en charge du stockage de masse USB JUSQU'AU prochain redémarrage. Encore une fois, cette approche tout ou rien n'est pas ce que je recherche, mais la possibilité d'activer et de désactiver le stockage de masse USB pendant une seule session, comme cela peut être fait par l'interface tactile.
adb shell setprop sys.usb.config mass_storage