1. 程式人生 > >Android L APP 如何獲取sys file system 中節點的寫許可權

Android L APP 如何獲取sys file system 中節點的寫許可權

[Keyword]
L SELinux sys write
[Android Version]
Version >= android 5.0
 
[Solution]

Google 預設禁止app , 包括system app, radio app 等直接寫/sys 下面的檔案, 認為這個是有安全風險的。如果直接放開SELinux 許可權, 會導致CTS 無法通過.


通常遇到此類情況,你有兩種做法:
(1). 通過system server service 或者 init 啟動的service 讀寫, 然後app 通過binder/socket 等方式連線APP 訪問. 此類安全可靠, 並且可以在service 中做相關的安全審查, 推崇這種方法.


(2). 修改對應節點的SELinux Security Label, 為特定的APP, 如system app, radio, bluetooth 等內建APP開啟許可權, 但嚴禁為untrsted app 開啟許可權. 具體的做法下面以 system app 控制/sys/class/leds/lcd-backlight/brightness 來說明.


1. 在device/mediatek/common/sepolicy/file.te 定義brightness SELinux type
type sys_lcd_brightness_file, fs_type,sysfs_type;


2. 在device/mediatek/common/sepolicy/file_contexts 繫結 brightness 對應的label, 注意對應的節點是實際節點,而不是連結.以及整個目錄路徑中也絕不能包含連結(無數同仁有犯這個錯誤,特意提醒)
/sys/devices/platform/leds-mt65xx/leds/lcd-backlight/brightness u:object_r:sys_lcd_brightness_file:s0


3. 在device/mediatek/common/sepolicy/system_app.te 中申請許可權.
allow system_app sys_lcd_brightness_file:file rw_file_perms;


4. 為其它的process 申請相關的許可權,如system_server, 在device/mediatek/common/sepolicy/system_server.te
allow system_server sys_lcd_brightness_file:file rw_file_perms;


原則上推崇使用第一種方式處理.

相關推薦

Android L APP 如何獲取sys file system 節點許可權

[Keyword] L SELinux sys write [Android Version] Version >= android 5.0   [Solution] Google 預設禁止ap

android 相簿 相機 獲取相片 相簿 2方式

// 相簿選取 Intent intent = new Intent(Intent.ACTION_GET_CONTENT).setType("image/*"); intent.addCategory(Intent.CA

android studio App獲取版本資訊

//版本名 public static String getVersionName(Context context) { return getPackageInfo(context).versionName; } //版本號 public static

Android/Linux出現“Read-only file system”解決

報錯原因是因為所操作的檔案系統為只讀許可權。 解決: 將檔案系統目錄remount為讀寫許可權,輸入命令: mount -o remount rw /system 之後即可進行操作。 操作後,需要重新remount為只讀,只需輸入:

修改Android系統/system的讀許可權

這段時間一直在修改sd卡的host controller的驅動,並於昨天重新編譯了核心並fastboot到g5手機中,sd卡是可以讀出來了,看樣子驅動生效了,興奮之餘看看同樣使用sd host控制的wifi,遺憾的wifi出錯,後來查明原因是: 編譯核心使用的是預設的msm

android下SD卡與U盤無讀許可權問題的解決辦法

今天在android4.2系統下使用SD卡,想順便修改一個檔案的名字,卻發現無許可權修改,接著換了U盤也是一樣的問題。經過檢視原始碼,發現把frameworks/base/data/etc/platform.xml修改如下:   <permission name="

linux 出現 Read-only file system

linux 中出現 Read-only當linux操作系統啟動出現root用戶也無法進行任何的文件寫操作時,無論什麽用戶(包括root)寫文件保存或者刪除文件,且對操作文件或目錄都有寫權限時,還任然報錯:E212: Can‘t open file for writing 或者 Read-only file s

關於Oraclesyssystem和Scott用戶下的數據庫連接問題

連接 con str sta sys oracle cot conn nag system默認:manager sys默認:change_on_install 使用SQL Plus登錄數據庫時,system使用密碼manager可直接登錄。 由於為自己的密碼時更改過

Android adb remount failed處理及Read-only file system處理(Android O)

我們在除錯工作中,常常會使用adb pull/push來獲取或替換裝置中的一些檔案。 1. 在使用pull/push前需要先執行: # adb root # adb remount 在Android N及之前的版本,是ok的,但是在Android O上會提示remount失敗: # adb

Oraclesyssystem使用者的區別

  Oracle中sys和system使用者的區別 1.資料庫的啟動需要以SYSDBA/SYSOPER身份登入。 2.如果在同一主機上使用IPC連線到資料庫使用作業系統授權,登入任何一個使用者都可以擁有as sysdba和as sysoper。 3.sys和system使用

xmlandroidapp、tools

小總結: xmlns: xml namespace 的縮寫。 android:規範使用者的可以使用的屬性範圍 app:擴充套件自定義屬性或support支援包之類的,即該控制元件沒有改屬性 tools:用於執行時更改佈局屬性。例如,當佈局空間設定執行時更改可見度

在ubuntu如何向U盤複製貼上檔案 Read-only file system

1.  重新掛載被操作分割槽的讀寫許可權,如U盤 $ sudo mount -o remount,rw /media/lenmom/00093FA700017B96 #U盤掛載目錄,如果是系統中的其他盤,如雙系統,同理 操作完成後,應該就可以對掛載的磁碟進行讀寫操作了。

android 7.0拍照問題file:///storage/emulated/0/photo.jpeg exposed beyond app through ClipData.Item.getUri

Android7.0呼叫相機時出現新的錯誤: android.os.FileUriExposedException: file:///storage/emulated/0/photo.jpeg exp

使Androidsystem分割槽可及安裝apk到system/app

在網上看到幾種方式記錄一下: 通過adb shell訪問Android。有時候會在已經root的系統檔案下面進行讀寫,例如/system,但是會提示類似read only file system的資訊。目前發現兩種方法,該方法只在自己的測試機上成功,不保證其他機子一樣。

JAVA android 獲取assets資料夾的properties檔案 並從中獲取資料

class PropertiesUtils { private static Properties properties = null; private static void readProperties() { try {

Android-通過網路獲取xml檔案使用pull解析得到伺服器的資訊(新聞客戶端)

通過網路獲取xml檔案,使用pull解析該檔案得到伺服器中的資訊; demo中使用了一個開源的圖片載入包,故上傳原始碼方便檢視; 效果圖: 步驟: 1.連線伺服器獲取xml檔案; 2.使用pull解析xml檔案存入實體物件中; 3.解析後將實體物件存入List集合中;

android 如何在自定義對話方塊獲取edittext的資料

在專案中忽然遇到這樣的問題,需要自定義對話方塊,對話方塊需要有一個輸入框,以便修改所選中的價格,然後點選確定之後,修改所顯示的價格。遇到的最大的問題就是如何能夠獲取到自定義對話方塊當中edittext輸入的數值,百度了很久,看到的答案都是如下: //得到自定義對話方塊

Android實現一個選擇器-recycleview滾動第一個item位置的獲取

package com.example.administrator.testanima.ActivityTwo; import android.content.Context; import android.os.Bundle; import android.os.Handler;

Android Module app 訪問不到libs包的class類

在Android studio 3.0 之前新建一個App,新建一個Libs庫,App引用Libs庫,compile project(':xxxLib'); App就可以引用Libs 中的資源了 但是

[Android L]SEAndroid開放裝置檔案結點許可權(讀或)方法(涵蓋常用操作:sys/xxx、proc/xxx、SystemProperties)熱門乾貨

溫馨提示 1 現象描述 基於Android L版本原始碼環境進行開發時,根據專案需求,APP層需要操作sys/xxx 或 proc/xxx下面的檔案結點,但是會報出以下許可權異常,無法直接操作這些結點 LedLightFileUtil( 4671): java.io