安卓系統權限管理在哪
7
根據用戶的使用過程體驗,可以將涉及的權限大致分為如下三類:
(1)手機所有者權限:自用戶購買手機后,用戶不需要輸入任何密碼,就具有安裝一般應用軟件、使用應用程序等的權限;
(2)權限:該權限為系統的最高權限,可以對所有系統中文件、數據進行任意操作。出廠時默認沒有該權限,需要使用等軟件進行獲取,然而,并不鼓勵進行此操作,因為可能由此使用戶失去手機原廠保修的權益。同樣,如果將手機進行root權限提升,則此后用戶不需要輸入任何密碼,都將能以權限來使用手機。
(3)應用程序權限:提供了豐富的SDK(it),開發人員可以根據其開發中的應用程序。而應用程序對系統資源的訪問需要有相應的訪問權限,這個權限就稱為應用程序權限,它在應用程序設計時設定,在系統中初次安裝時即生效。值得注意的是:如果應用程序設計的權限大于手機所有者權限,則該應用程序無法運行。如:沒有獲取權限的手機無法運行,因為運行該應用程序需要權限。
系統權限定義
系統在//core//onfig.h頭文件中對用戶/用戶組作了如下定義,且權限均基于該用戶/用戶組設置。
值得注意的是:每個應用程序在安裝到系統后,系統都會為其分配一個用戶ID,如app_4、等。以下是和軟件在系統中進程瀏覽的結果(其中,黑色字體標明的即為應用分配的用戶ID):
在系統中,上述用戶/用戶組對文件的訪問遵循Linux系統的訪問控制原則,即根據長度為10個字符的權限控制符來決定用戶/用戶組對文件的訪問權限。該控制符的格式遵循下列規則:
第1個字符:表示一種特殊的文件類型。其中字符可為d(表示該文件是一個目錄)、b(表示該文件是一個系統設備,使用塊輸入/輸出與外界交互哪種軟件可以編輯微信文件的,通常為一個磁盤)、c(表示該文件是一個系統設備,使用連續的字符輸入/輸出與外界交互,如串口和聲音設備),“.”表示該文件是一個普通文件,沒有特殊屬性。
2~4個字符:用來確定文件的用戶(user)權限;
5~7個字符:用來確定文件的組(group)權限;
8~10個字符:用來確定文件的其它用戶(,既不是文件所有者,也不是組成員的用戶)的權限。
第2、5、8個字符是用來控制文件的讀權限的,該位字符為r表示允許用戶、組成員或其它人可從該文件中讀取數據。短線“-”則表示不允許該成員讀取數據。
第3、6、9位的字符控制文件的寫權限,該位若為w表示允許寫,若為“-”表示不允許寫。
第4、7、10位的字符用來控制文件的制造權限,該位若為x表示允許執行,若為“-”表示不允許執行。
舉個例子,“--月1110:36lu”表示的訪問控制權限(黑色字體標明)為:因為lu的第1個位置的字符是d,所以由此知道lu是一個目錄。第2至4位置上的屬性是rwx,表示用戶root擁有權限列表顯示lu中所有的文件、創建新文件或者刪除lu中現有的文件,或者將lu作為當前工作目錄。第5至7個位置上的權限是rwx,表示root組的成員擁有和root一樣的權限。第8至10位上的權限僅是r--,表示不是root的用戶及不屬于root組的成員只有對lu目錄列表的權限。這些用戶不能創建或者刪除lu中的文件、執行junk中的可執行文件哪種軟件可以編輯微信文件的,或者將junk作為他們的當前工作目錄。
應用程序權限申請
每個應用程序的APK包里面都包含有一個.xml文件,該文件除了羅列應用程序運行時庫、運行依賴關系等之外,還會詳細地羅列出該應用程序所需的系統訪問。程序員在進行應用軟件開發時,需要通過設置該文件的uses-字段來顯式地向系統申請訪問權限。