Я принял код кода FM-кода Aurora и слился с моей кодовой базой Android Gingerbread.Android: невозможно открыть файл устройства в JNI implementationaion
Структура приложения FM пытается получить доступ к радиоустройству fm (/ dev/radio) с использованием JNI, который реализован в файле по имени android_hardware_fm.cpp. В этом файле есть функция, которая пытается получить дескриптор файла на узле устройства с помощью функции open() в режиме чтения/записи. Однако вызов завершился с кодом ошибки -13: Permission denied.
Я также сделал небольшой исполняемый файл C, который пытается открыть файл/dev/radio (в режиме RDWR), печатает его fd и закрывает его. Он запускается из/system/bin в целевой системе и отображает действительный fd.
Btw, реализация JNI является частью библиотеки ядра Android. Он расположен в рамках/base/core/jni и составлен как часть libandroid_runtime.so
Любые идеи/решения? Заранее спасибо.
4 года спустя у меня действительно похожая проблема: http://stackoverflow.com/questions/37486349 Я даже запускал свой исполняемый файл как тот же UID, что и приложение, и он работает, и, конечно же, все ответ ниже. Вы когда-нибудь находили решение? – jkoreska
@jkoreska Я думаю, я использовал обходное решение. см. мой комментарий в ответе ниже. – trans1st0r