Contexte : J'ai une clé USB Android (par exemple RikoMagic) que j'utilise principalement en mode "headless". Entre autres choses, j'ai déjà compris comment l'éteindre via une combinaison de adb et de la commande interne "am" :
adb shell am start -n android/com.android.server.ShutdownActivity
J'essaie maintenant de trouver comment activer et désactiver la prise en charge du stockage de masse USB. J'ai réussi à faire apparaître la fenêtre d'activité de stockage USB via la commande suivante :
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity
Malheureusement, je n'ai pas réussi à trouver comment envoyer l'"intention" équivalente pour "démonter" ou "déspartager" le volume partagé (ou le "monter" ou le "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 de 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 Linux "mount"/"umount" évidente. Cependant, le simple fait de monter ou démonter le volume ne déclenchera pas les fonctions système essentielles, 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 si une application sur la carte SD est toujours active.
Note 2 : Apparemment, il existe une commande "setprop" qui permet d'activer/désactiver le support de la mémoire de masse USB jusqu'au prochain redémarrage. Encore une fois, cette approche du tout ou rien n'est pas ce que je recherche, mais la possibilité d'activer et de désactiver la mémoire de masse USB au cours d'une seule session, comme cela peut être fait par l'interface tactile.
adb shell setprop sys.usb.config mass_storage