android默认获取敏感权限
1.通過系統簽名獲取權限
定制系統中,可以通過源碼的簽名文件對應用進行簽名,在應用的AndroidManifest.xml中配置好參數,如圖
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
coreApp="true"
package="com.xxx.xxx"
android:sharedUserId="android.uid.system"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />
<uses-permission android:name="android.permission.REBOOT" />
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
添加 android:sharedUserId=“android.uid.system”,然后將需要的敏感權限或系統級權限列出。
1.如果是將apk或app代碼放在系統源碼中編譯可自動簽名。
2.在源碼的build\target\product\security將簽名文件拷出,同時在out\host\linux-x86\framework目錄將signapk.jar文件拷出,放在同一個文件夾下
,修改 sign.bat處理文件,例如:
java -jar signapk.jar platform.x509.pem platform.pk8 簽名前.apk .\簽名后.apk
分別編輯對應的apk名稱,和簽名后的名稱,完成后雙擊運行sign.bat,就會生成簽名后的apk。
2.通過targetSDKVersion來靜態獲取敏感權限
Android6.0以后權限分為普通權限normal permission 和危險權限dangerous permission
將targetSDKVersion 設置到 23 以下 可在安裝時就獲取權限,對于部分定制系統(電視盒子,車載系統等)的應用來說,動態獲取權限是比較不方便和不理想的,在對新API接口依賴不大的應用采用這樣的方式可以方便第三方開發商調試。
Normal Permission:寫在xml文件里,那么App安裝時就會默認獲得這些權限,即使是在Android6.0系統的手機上,用戶也無法在安裝后動態取消這些normal權限,這和以前的權限系統是一樣的,不變。
Dangerous Permission:還是得寫在xml文件里,但是App安裝時具體如果執行授權分以下幾種情況:
1、targetSDKVersion < 23 & API(手機系統) < 6.0 :安裝時默認獲得權限,且用戶無法在安裝App之后取消權限。
3、targetSDKVersion < 23 & API(手機系統) >= 6.0 :安裝時默認獲得權限,但是用戶可以在安裝App完成后動態取消授權( 取消時手機會彈出提醒,告訴用戶這個是為舊版手機打造的應用,讓用戶謹慎操作 )。
2、targetSDKVersion >= 23 & API(手機系統) < 6.0 :安裝時默認獲得權限,且用戶無法在安裝App之后取消權限。
4、targetSDKVersion >= 23 & API(手機系統) >= 6.0 :安裝時不會獲得權限,可以在運行時向用戶申請權限。用戶授權以后仍然可以在設置界面中取消授權,用戶主動在設置界面取消后,在app運行過程中可能會出現crash。
對于部分系統權限,需要在源碼中進行修改權限等級或權限功能,然后在列表中列出。
來源:https://blog.csdn.net/qq_33826580/article/details/88117057
轉載于:https://www.cnblogs.com/qynprime/p/10977795.html
總結
以上是生活随笔為你收集整理的android默认获取敏感权限的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ##MySql数据库表的操作与应用
- 下一篇: 洛谷 - P2324 - 骑士精神 -