android下裝置許可權為777卻無法訪問的問題

2021-07-04 18:16:05 字數 548 閱讀 7906

在android5或5.1的開發中經常會碰到,明明裝置節點是有777的許可權,可是在我們程式中訪問這個裝置卻報permission denied,無法開啟裝置。

這是因為在android 5.0或5.1下,採取了seandroid/selinux的安全機制。

selinux是美國****局和一些公司設計的乙個針對linux的安全加強系統,在這種訪問控制體系的限制下,程序只能訪問那些在他的任務中所需要檔案。

下面我們來看看怎麼設定來允許我們的應用可以訪問裝置節點。

第一步,我們找到file_contexts檔案,這個檔案通常在device/mypaltform/sepolicy 或者external/sepolicy目錄下。我們在這個檔案下增加一行 「/dev/devname  u:object_r:my_device:s0」。/dev/devname是裝置節點,也就是我們要開啟的裝置名。my_device我們可以定義乙個我們看的懂的有意義的名字。object_r標明這是乙個檔案。s0是表示優先順序的。

第二步,在device.te檔案中新增一行 「type my_device, dev_type 」;

為Android應用程式讀取 dev下裝置而提權2

在 為android應用程式讀取 dev下裝置而提權 一 中,簡單總結了提權的兩種方法 device init和init.rc 在此篇文章中,我將詳細總結的是稍一不留神,就容易把人弄暈乎的init.c device init和init.rc 三者之間的關係,ta們到底是如何工作的。ls一下syste...

Android系統修改硬體裝置訪問許可權

android系統修改硬體裝置訪問許可權 注 本文主要針對熱插拔裝置,板卡自帶的裝置可以在init.project.rc檔案中修改 在系統啟動時就提公升裝置訪問許可權 在硬體抽象層模組檔案 so 檔案中,提供的函式呼叫open函式來開啟裝置檔案,比如 dev gpio,如果不修改裝置檔案 dev g...

android下dev裝置的許可權問題

博主寫的很好,留做筆記 倘若應用程式需要對 dev 進行讀寫操作,就需要提公升其許可權。提權方法不唯一,需要根據具體需求情況而選擇。歸根結底,終究都落到chmod 777 dev 上,不同的是,chmod操作被執行在何時何地,在此做個分析總結。核心啟動後會執行 system init,傳說中的系統1...