Android USB Gadget

Материал из Toshiba AC100 wiki
Версия от 08:15, 15 октября 2014; Unknown user (обсуждение)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Описание 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 тогда можно подмаунтить тошу, видит и внутренную партицию и внешную сд, возможно юсб тоже увидит
  • Может чтот еще, пока не знаю