我已將Code Aurora的FM收音機代碼與我的Android Gingerbread代碼庫合併。Android:無法在JNI實施中打開設備文件
FM應用程序框架試圖使用JNI訪問fm無線電設備(/ dev/radio),該名稱是在名爲android_hardware_fm.cpp的文件中實現的。該文件中有一個函數,它嘗試在讀/寫模式下使用open()獲取設備節點的文件描述符。但是,該調用失敗,錯誤代碼爲-13:權限被拒絕。
我也做了一個小的C可執行文件,它試圖打開/ dev/radio文件(在RDWR模式下),打印它的fd並關閉它。它從目標系統中的/ system/bin運行並顯示有效的fd。
順便說一下,JNI實現是android核心庫的一部分。它位於frameworks/base/core/jni中,並被編譯爲libandroid_runtime.so的一部分。
任何想法/解決方案?提前致謝。
4年後我有一個非常類似的問題:http://stackoverflow.com/questions/37486349 我甚至運行我的可執行文件作爲應用程序相同的UID和它的作品,當然做了一切下面的答案。你有沒有找到解決方案? – jkoreska
@jkoreska我想我使用了一種解決方法。請在下面的答案中看到我的評論。 – trans1st0r