Передумови: У мене є пристрій USB-накопичувач Android (наприклад, RikoMagic), який я здебільшого запускаю в режимі "без голови". Крім усього іншого, я вже придумав, як його вимкнути за допомогою комбінації adb та внутрішньої команди "am":
adb shell am start -n android/com.android.server.ShutdownActivity
Зараз я намагаюся з’ясувати, як увімкнути та вимкнути підтримку масового зберігання USB. У мене з'явилося повідомлення про те, що вікно активності зберігання USB з'являється за допомогою наступної команди:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity
На жаль, я не зміг зрозуміти, як надіслати еквівалент "наміру" фактично "відключити" або "скасувати" спільний об'єм (або "змонтувати" або "поділитися" ним із цього питання). Наступна команда нічого не робить:
adb shell am start -n com.android.systemui/.usb.UsbStorageActivity -a android.intent.action.MEDIA_UNSHARED file:///mnt/sdcard
Що я роблю неправильно? Який чарівний заклик монтувати / демонструвати внутрішнє сховище пристрою Android?
Примітка 1: Я знаю, що очевидна команда Linux "mount" / "umount". Однак, просто встановлення або відключення гучності не призведе до запуску системних функцій, важливих для, наприклад, перезавантаження або зупинки додатків, переміщених на SD-карту. "Програма", ймовірно, все-таки вийде з ладу, коли додаток на SD-картці все ще активний.
Примітка 2: Мабуть, є команда "setprop", яка може включити / вимкнути підтримку масового зберігання USB ДО наступної перезавантаження. Знову ж таки, цей підхід «все або нічого» - це не те, що я шукаю, а можливість вмикати та вимикати масове зберігання USB протягом одного сеансу, як це можна зробити за допомогою сенсорного інтерфейсу.
adb shell setprop sys.usb.config mass_storage