A. 如何使android應用程序獲取system許可權
不論何種系統版本,均需要root許可權。
安卓4.4以下版本的方法:
使用re管理器移動想要獲取system許可權的軟體的apk安裝包到/system/app文件夾,更改許可權為rw-r-r確定後重啟手機。
安卓4.4和以上版本的方法:
使用re管理器移動想要獲取system許可權的軟體的apk安裝包到/system/priv-app文件夾,更改許可權為rw-r-r確定後重啟手機。
備註:安卓系統並不像windows,system許可權(uid1000)並不是最高許可權,僅僅比普通用戶擁有少量的特殊許可權,比如安裝軟體無需彈窗。而系統中最高許可權是root許可權(uid0)。
B. Android 的許可權管理是怎麼實現的
根據用戶的使用過程體驗,可以將 Android 涉及的許可權大致分為如下三類:
(1)Android 手機所有者許可權:自用戶購買 Android 手機後,用戶不需要輸入任何密碼,就具有安裝一般應用軟體、使用應用程序等的許可權;
(2)Android root 許可權:該許可權為 Android 系統的最高許可權,可以對所有系統中文件、數據進行任意操作。出廠時默認沒有該許可權,需要使用 z4Root 等軟體進行獲取,然而,並不鼓勵進行此操作,因為可能由此使用戶失去手機原廠保修的權益。同樣,如果將 Android 手機進行 root 許可權提升,則此後用戶不需要輸入任何密碼,都將能以 Android root 許可權來使用手機。
(3)Android 應用程序許可權:Android 提供了豐富的 SDK(Software development kit),開發人員可以根據其開發 Android 中的應用程序。而應用程序對 Android 系統資源的訪問需要有相應的訪問許可權,這個許可權就稱為 Android 應用程序許可權,它在應用程序設計時設定,在 Android 系統中初次安裝時即生效。值得注意的是:如果應用程序設計的許可權大於 Android 手機所有者許可權,則該應用程序無法運行。如:沒有獲取 Android root 許可權的手機無法運行 Root Explorer,因為運行該應用程序需要 Android root 許可權。
Android 系統許可權定義
Android 系統在 /system/core/private/android_filesystem_config.h 頭文件中對 Android 用戶 / 用戶組作了如下定義,且許可權均基於該用戶 / 用戶組設置。
在 Android 系統中,上述用戶 / 用戶組對文件的訪問遵循 Linux 系統的訪問控制原則,即根據長度為 10 個字元的許可權控制符來決定用戶 / 用戶組對文件的訪問許可權。該控制符的格式遵循下列規則:
第 1 個字元:表示一種特殊的文件類型。其中字元可為 d( 表示該文件是一個目錄 )、b( 表示該文件是一個系統設備,使用塊輸入 / 輸出與外界交互,通常為一個磁碟 )、c( 表示該文件是一個系統設備,使用連續的字元輸入 / 輸出與外界交互,如串口和聲音設備 ),「.」表示該文件是一個普通文件,沒有特殊屬性。
2 ~ 4 個字元:用來確定文件的用戶 (user) 許可權;
5 ~ 7 個字元:用來確定文件的組 (group) 許可權;
8 ~ 10 個字元:用來確定文件的其它用戶 (other user,既不是文件所有者,也不是組成員的用戶 ) 的許可權。
第 2、5、8 個字元是用來控制文件的讀許可權的,該位字元為 r 表示允許用戶、組成員或其它人可從該文件中讀取數據。短線「-」則表示不允許該成員讀取數據。
第 3、6、9 位的字元控制文件的寫許可權,該位若為 w 表示允許寫,若為「-」表示不允許寫。
第 4、7、10 位的字元用來控制文件的製造許可權,該位若為 x 表示允許執行,若為「-」表示不允許執行。
舉個例子,「drwxrwxr--2 rootroot40962 月 11 10:36 lu」表示的訪問控制許可權(黑色字體標明)為:因為 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 作為他們的當前工作目錄。
Android 應用程序許可權申請
每個應用程序的 APK 包裡面都包含有一個 AndroidMainifest.xml 文件,該文件除了羅列應用程序運行時庫、運行依賴關系等之外,還會詳細地羅列出該應用程序所需的系統訪問。程序員在進行應用軟體開發時,需要通過設置該文件的 uses-permission 欄位來顯式地向 Android 系統申請訪問許可權。
C. 開發Android網路手機游戲需要打開哪些許可權
開發枯敗Android網路手機游戲需要打開的許可權主要包括:網路訪問的許可權、讀取wifi狀態的許可權、對文件讀寫的許可權、防止手機黑屏的許可權等,如下:
java"><uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.RESTART_PACKAGES"/>
<uses-permissionandroid:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
大部昌褲分的應用都需沒迅顫要聯網,和讀寫文件,一些特殊的應用,需要有拍照、錄音、地理位置、讀取聯系人等許可權,用戶需要謹慎勾選,防止泄密。
D. android懸浮窗及許可權
懸浮窗許可權是Android提供的許可權中的特殊許可權,要申請後再使用,否則會導致彈框不能顯示、程序崩潰等問題
有的文章說MIUI系統可設置為 WindowManager.LayoutParams.TYPE_TOAST 避開懸浮框許可權的申請,我的實踐經驗是不要這樣設置,否則利用參考文獻中的方法操作後dialog還是顯示不出來
Android 懸浮窗許可權各機型各系統適配大全
Android懸浮窗及許可權 by JustDo23
github項目