Можно ли разработать и запустить драйвер устройства для телефона Android?

У меня есть Galaxy S3, который является телефоном Android. Я хочу разработать для него драйвер USB-устройства. Поэтому я сделал простой драйвер, скомпилированный с ядром Galaxy S3 Linux. Но я не могу выполнить команду «insmod» без разрешения root.

Можно ли разработать драйвер устройства для телефона Android?

Кроме того, исходный код драйвера представляет собой образец типичного драйвера символьного устройства, который имеет функции open(), close(), read(), write().

И сообщение об ошибке:

  1. insmod: Отказано в доступе
    (нет прав суперпользователя)

  2. insmod: недопустимый формат модуля
    (имеют root-права через «рутирование». Я думаю, что ядро ​​​​было изменено из-за «рутирования». И драйвер устройства скомпилирован с оригинальным ядром Galaxy S3 Linux, выпущенным Samsung. )


person Joel    schedule 24.07.2012    source источник
comment
опишите, что вы хотите от водителя. Поместите информацию о вашем простом драйвере и информацию об ошибках. Добавьте теги в текущую тему о том, на каком языке вы пишете свой драйвер.   -  person b1_    schedule 24.07.2012
comment
Кто-то сказал мне, что Android Host API (developer.android.com/guide/topics /connectivity/usb/host.html)   -  person Joel    schedule 25.07.2012
comment
Возможно, Galaxy S3 доступен для Android Host API.   -  person Joel    schedule 25.07.2012
comment
И кто-то сказал мне разблокировать загрузчик.   -  person Joel    schedule 26.07.2012


Ответы (1)


Да, МОЖНО разработать драйвер устройства для любого телефона Android, если у вас есть:
-доступ к исходному коду ядра Linux для этого конкретного телефона.
-есть доступ к корневой оболочке на устройстве.

Доступ к исходному коду ядра необходим, чтобы можно было собрать модуль ядра для этого конкретного ядра. Для установки модуля ядра требуется корневая оболочка.

Что касается поддержки USB-хоста на телефонах Android, некоторые телефоны имеют встроенную поддержку USB-хоста в ядре и будут поддерживать режим USB-хоста. Но для подключения периферийных устройств необходимы надлежащие USB-кабели.

Также, чтобы преодолеть ошибку,

insmod: неверный формат модуля

вы можете попробовать флаг --force-vermagic следующим образом:

insmod --force-vermagic <module.ko>

Как вы правильно догадались, на самом деле это ошибка из-за несоответствия номеров версий между ядром, работающим на устройстве, и ядром, на основе которого собран модуль. Подробнее здесь.

person TheCodeArtist    schedule 02.08.2012