Antecedentes: Eu tenho um dispositivo Android com pendrive (por exemplo, RikoMagic), que geralmente corro no modo "sem cabeça". Entre outras coisas, eu já descobri como desligá-lo por meio de uma combinação de adb e o comando interno "am":
adb shell am start -n android/com.android.server.ShutdownActivity
Agora estou tentando descobrir como ativar e desativar o suporte a armazenamento em massa USB. Cheguei ao ponto de exibir a janela de atividade de armazenamento USB através do seguinte comando:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity
Infelizmente, não consegui descobrir como enviar a "intenção" equivalente para realmente "desmontar" ou "cancelar o compartilhamento" do volume compartilhado (ou "montar" ou "compartilhá-lo"). O seguinte comando não faz nada:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity -a android.intent.action.MEDIA_UNSHARED file:///mnt/sdcard
O que estou fazendo de errado? Qual é o encantamento mágico para montar / desmontar o armazenamento interno de um dispositivo Android?
Nota 1: Eu sei que existe o comando óbvio Linux "mount" / "umount". No entanto, simplesmente montar ou desmontar o volume não acionará as funções do sistema vitais para, por exemplo, reiniciar ou interromper os aplicativos que foram movidos para o cartão SD. Uma "quantidade" provavelmente falhará de qualquer maneira quando um aplicativo no cartão SD ainda estiver ativo.
Nota 2: Aparentemente, existe um comando "setprop" que pode ativar / desativar o suporte ao armazenamento em massa USB ATÉ a próxima reinicialização. Novamente, essa abordagem de tudo ou nada não é o que estou procurando, mas a capacidade de ativar e desativar o armazenamento em massa USB durante uma única sessão, como pode ser feito pela interface de toque.
adb shell setprop sys.usb.config mass_storage