Я взял код FM-радио Code Aurora и объединил его с кодовой базой Android Gingerbread.
Платформа приложения FM пытается получить доступ к устройству FM-радио ( /dev/radio ) с помощью JNI, который реализован в файле с именем android_hardware_fm.cpp . В этом файле есть функция, которая пытается получить дескриптор файла для узла устройства, используя open() в режиме чтения/записи. Однако вызов завершается с ошибкой с кодом -13: Отказано в доступе.
Я также сделал небольшой исполняемый файл C, который пытается открыть файл /dev/radio (в режиме RDWR), печатает его fd и закрывает его. Он запускается из /system/bin в целевой системе и отображает действительный fd.
Кстати, реализация JNI является частью основной библиотеки Android. Он находится в frameworks/base/core/jni и компилируется как часть libandroid_runtime.so.
Есть идеи/решения? Заранее спасибо.