Android USB Gadget
Описание Android USB Gadget
Драйвер ядра. Который позволяет использовать порт мини-USB как многофункциональное устройство которое можно переключать в разные режимы.
Список возможных режимов на текущий момент (выдержка из папки /sys/devices/virtual/android_usb/android0/):
f_accessory f_acm f_adb f_mass_storage f_mtp f_ptp f_rndis
Что каждый их них значит:
Название | Описание | Текущий статус |
---|---|---|
f_adb | Драйвер usb для разработчиков, дает возможность управления андроидом по усб и подключение в его консоль. С PC запускается одноименной утилитой из состава Android SDK. | работает |
f_rndis | Видимо драйвер сетевого подключения usb-usb? | Попробовал, чтот начинает шевелиться на бб, но не работает |
f_mtp | Протокол от Microsoft. Используется в медиаплеерах дабы не давать доступа юзеру к корню стораджа устройства и еще чего то. Надо его попробовать | Работает. Savalik доволен. |
f_mass_storage | Подключение к бб в виде флешки. | |
f_ptp | ?? | |
f_acm | ?? | |
f_accessory | ?? |
В Андроиде 2.х режим можно было переключать в настройках системы. В ICS такая возможность пропала. Т.к теперь режим содержится в пропертях в переменной sys.usb.config. Режим соответсвеннно меняется когда меняется содержимое переменной.
Наши текущие настройки режимов живут тут https://github.com/zombah/android_device_toshiba_paz00-common/blob/master/prebuild/init.nv_dev_board.usb.rc
В систему сейчас никакое значение по умолчанию не заводится, поэтому используется режим только adb.
Что нужно чтобы на Тоше все работало
- Узнать какие должны у нас быть USB VID и PID для каждого режима.
- Какие нужны значени bDeviceClass для каждого режима
- Какое значение ставить по умолчанию?
- Есть предположение что надо sys.usb.config=mass_storage,adb, но режим mass_storage у нас пока не описан.
- Протестить у нас существующие связки
setprop sys.usb.config=ptp,adb setprop sys.usb.config=mtp,adb setprop sys.usb.config=rndis,adb
Не забыть перед проверкой выключить USB Debugging в Settings->Developer options
- mtp под Линуксом не заводится из коробки, нужно ставить libmtp9 и jmtpfs тогда можно подмаунтить тошу, видит и внутренную партицию и внешную сд, возможно юсб тоже увидит
- Может чтот еще, пока не знаю