Я разрабатываю приложение, которое использует Libusb через JNI. Это приложение в настоящее время нацелено только для укоренения, USB-хозяина Android 3+ машины.
Сценарий выглядит следующим образом:
<java Activity>
loads <jni_wrapper.so>
which wraps <my_main_lib.so>
that uses <libusb.so>
that needs rw access to: /dev/bus/usb/<device>
Все нативные библиотеки .so являются частью инфраструктуры, которую я устанавливаю (в виде корня) / System / lib, Что затем может быть использовано мероприятиями Java, управляемой простыми пользователями.
Это означает, что все USB-сообщение должно быть сделано из родной стороны.
Я получил все, чтобы работать нормально, за исключением одной проблемы - разрешения USB: Разрешения по умолчанию / DEV / шины / USB / записи (0660, UID = root, GID = USB).
Очевидно, что стандартный процесс Java, работающий на родном коде, не соответствует ни одному из вышеперечисленных требований, заставляя меня «CHMOD 666» соответствующей записи / DEV, чтобы получить эту работу.
Это решение не так хорошее, хотя, потому что он не выживает перезагрузку, либо отключение / отторжение устройства (разрешения возвращаются к 0660).
Решение, которое я ищу, нужно:
направления, которые я подумал о:
Любые идеи? : -)
Спасибо!