真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android應(yīng)用權(quán)限,android應(yīng)用權(quán)限manifest

Android應(yīng)用程序獲取system權(quán)限

支持原作者 :

成都創(chuàng)新互聯(lián)公司成立于2013年,我們提供高端重慶網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、成都營銷網(wǎng)站建設(shè)、成都小程序開發(fā)、微信公眾號(hào)開發(fā)、seo優(yōu)化排名服務(wù),提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為成都食品包裝袋企業(yè)提供源源不斷的流量和訂單咨詢。

軟硬件環(huán)境

ubuntu 14.04

Android studio2.1.2

Android 5.1.1

前言

一般的Android應(yīng)用程序,在安裝后,程序只能訪問/data/data/${程序包名}下的數(shù)據(jù),如常見的SharedPreferences、database等。

而如果想讓app訪問其它地方的資源時(shí),就必須要獲取更高的權(quán)限,像system或者root。本文完成system權(quán)限的獲取,實(shí)際上一般的應(yīng)用有system的權(quán)限基本上也夠了。

修改apk內(nèi)的AndroidManifest.xml

在app中的AndroidManifest.xml文件中的manifest標(biāo)簽中加入

android:sharedUserId="android.uid.system"

APP工程生成apk文件

android studio或者eclipse自動(dòng)就幫你生成好了

給apk文件進(jìn)行簽名

這里分兩種情況,一種是廠商,有android系統(tǒng)源碼,既可以把a(bǔ)pp源碼導(dǎo)入到android源碼中,也可以單獨(dú)完成簽名。第二種是你僅僅是做應(yīng)用的,拿不到廠商的source code,而且

這種情況也相當(dāng)普遍,怎么辦?別著急,我們今天就來解決這個(gè)問題。

簽名需要的幾個(gè)文件

這個(gè)你必須找廠商要,signapk.jar、platform.x509.pem、platform.pk8,如果你有source code,signapk.jar存放在prebuilts/sdk/tools/,platform.* 兩個(gè)key文件存放在build/target/product/security/下

簽名具體命令

java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk

制作新的image文件

如果你的應(yīng)用需要預(yù)置到android系統(tǒng)中,將signed.apk導(dǎo)入到android源碼目錄中(一般是out/target/product/${hardware}/system/app/下),編譯生成新的

system.img,再燒錄到目標(biāo)板中。如果不需要預(yù)置,那就直接adb install好了。

測(cè)試

待系統(tǒng)啟動(dòng)后adb shell到板子上,ls -l查看app安裝目錄(/data/data/${程序包名})的權(quán)限,看看是不是變成system:system了。

android權(quán)限管理

從 Android 6.0 開始,按照是否需要?jiǎng)討B(tài)申請(qǐng)分為 普通權(quán)限 和 特殊權(quán)限

特殊權(quán)限 需要程序運(yùn)行時(shí)申請(qǐng)并通過之后才能使用,或者程序安裝為系統(tǒng)應(yīng)用或系統(tǒng)簽名。

注意:

1、動(dòng)態(tài)申請(qǐng)也需要在清單文件中配置(AndroidMenifest.xml)

2、權(quán)限是分組的,同一組的權(quán)限申請(qǐng)其中一個(gè),同組的權(quán)限就全部都申請(qǐng)了

特殊權(quán)限共有 9 組:

9 組具體權(quán)限列表:

普通權(quán)限在清單文件配置(AndroidMenifest.xml)即可使用

(1)在 AndroidMenifest.xml 清單文件中申請(qǐng)

(2)單個(gè)申請(qǐng)

(2)批量申請(qǐng)

(3)回調(diào)處理

Android權(quán)限機(jī)制

我們知道 Android 應(yīng)用程序是沙箱隔離的,每個(gè)應(yīng)用都有一個(gè)只有自己具有讀寫權(quán)限的專用數(shù)據(jù)目錄。但是如果應(yīng)用要訪問別人的組件或者一些設(shè)備上全局可訪問的資源,這時(shí)候權(quán)限機(jī)制就能系統(tǒng)化地規(guī)范并強(qiáng)制各類應(yīng)用程序的行為準(zhǔn)則。

Android 安全性概覽

在 Android 中,一個(gè)權(quán)限,本質(zhì)上是一個(gè)字符串,一個(gè)可以表示執(zhí)行特定操作的能力的字符串。比如說:訪問 SD 卡的能力,訪問通訊錄的能力,啟動(dòng)或訪問一個(gè)第三方應(yīng)用中的組件的能力。 權(quán)限被授予了之后,首先會(huì)在內(nèi)存和本地中有記錄,這在調(diào)用系統(tǒng)binder服務(wù)和其他應(yīng)用組件時(shí)做鑒權(quán)依據(jù),比如調(diào)用系統(tǒng)binder服務(wù)時(shí)會(huì)通過Binder.getCallingUid()拿到調(diào)用者的Uid,而Uid一般都是與應(yīng)用包名一一對(duì)應(yīng)的,再拿這個(gè)Uid到PMS里去查這個(gè)應(yīng)用對(duì)應(yīng)的權(quán)限。 其次會(huì)按被授予的權(quán)限將應(yīng)用分到某個(gè)組。 可以參考

自定義權(quán)限的應(yīng)用場(chǎng)景在于限制其它應(yīng)用對(duì)本應(yīng)用四大組件的訪問。具體用法可以參考

pm list permissions -f 命令可以詳細(xì)查看 Android 所有預(yù)定義的權(quán)限。

更詳細(xì)的權(quán)限信息參考

可以看到一個(gè)權(quán)限的信息包括:定義的包名、標(biāo)簽、描述、 權(quán)限組 和 保護(hù)級(jí)別 。

權(quán)限根據(jù)設(shè)備的功能或特性分為多個(gè)組。如果應(yīng)用已在相同權(quán)限組中被授予另一危險(xiǎn)權(quán)限,系統(tǒng)將立即授予該權(quán)限,如READ_CONTACTS和WRITE_CONTACTS。

SYSTEM_ALERT_WINDOW 和 WRITE_SETTINGS 由于其特殊性,其申請(qǐng)方式與其它權(quán)限都不同。

其授予流程如下:

(關(guān)于 AppOpsManager 是什么可以參考: )

這里簡(jiǎn)要分析下ActivityCompat#requestPermissions的流程:

更詳細(xì)的權(quán)限授予流程源碼分析可以參考:

普通權(quán)限: 清單文件中聲明即可。

危險(xiǎn)權(quán)限: 方式一: pm grant application_package android.permission.CHANGE_CONFIGURATION 方式二:appops set application_package permission_num 0/1

appops可以授予的權(quán)限參考 android.app.AppOpsManager 中的聲明

系統(tǒng)簽名權(quán)限: 方式一:將app遷移到system/priv-app目錄中。 方式二:看不懂,參考

android 4.4 訪問sd卡需要申請(qǐng)權(quán)限。 您的應(yīng)用在 Android 4.4 上運(yùn)行時(shí)無法讀取外部存儲(chǔ)空間上的共享文件,除非您的應(yīng)用具有 READ_EXTERNAL_STORAGE 權(quán)限。也就是說,沒有此權(quán)限,您無法再訪問 getExternalStoragePublicDirectory() 返回的目錄中的文件。但是,如果您僅需要訪問 getExternalFilesDir() 提供的您的應(yīng)用特有目錄,那么,您不需要 READ_EXTERNAL_STORAGE `權(quán)限。

android 6.0 運(yùn)行時(shí)權(quán)限。 此版本引入了一種新的權(quán)限模式,如今,用戶可直接在運(yùn)行時(shí)管理應(yīng)用權(quán)限。這種模式讓用戶能夠更好地了解和控制權(quán)限,同時(shí)為應(yīng)用開發(fā)者精簡(jiǎn)了安裝和自動(dòng)更新過程。用戶可為所安裝的各個(gè)應(yīng)用分別授予或撤銷權(quán)限。 對(duì)于以 Android 6.0(API 級(jí)別 23)或更高版本為目標(biāo)平臺(tái)的應(yīng)用,請(qǐng)務(wù)必在運(yùn)行時(shí)檢查和請(qǐng)求權(quán)限。要確定您的應(yīng)用是否已被授予權(quán)限,請(qǐng)調(diào)用新增的 checkSelfPermission() 方法。要請(qǐng)求權(quán)限,請(qǐng)調(diào)用新增的 requestPermissions() 方法。即使您的應(yīng)用并不以 Android 6.0(API 級(jí)別 23)為目標(biāo)平臺(tái),您也應(yīng)該在新權(quán)限模式下測(cè)試您的應(yīng)用。 如需了解有關(guān)在您的應(yīng)用中支持新權(quán)限模式的詳情,請(qǐng)參閱 使用系統(tǒng)權(quán)限 。如需了解有關(guān)如何評(píng)估新模式對(duì)應(yīng)用的影響的提示,請(qǐng)參閱 權(quán)限最佳做法 。

android 7.+ 應(yīng)用間共享文件要使用FileProvider。 對(duì)于面向 Android 7.0 的應(yīng)用,Android 框架執(zhí)行的 StrictMode API 政策禁止在您的應(yīng)用外部公開 。如果一項(xiàng)包含文件 URI 的 intent 離開您的應(yīng)用,則應(yīng)用出現(xiàn)故障,并出現(xiàn) FileUriExposedException 異常。 要在應(yīng)用間共享文件,您應(yīng)發(fā)送一項(xiàng) content:// URI,并授予 URI 臨時(shí)訪問權(quán)限。進(jìn)行此授權(quán)的最簡(jiǎn)單方式是使用 FileProvider `類。如需了解有關(guān)權(quán)限和共享文件的詳細(xì)信息,請(qǐng)參閱 共享文件 。

android 8.+

同一權(quán)限組的權(quán)限在被授予了之后也需要顯式的再申請(qǐng)一次。

在 Android 8.0 之前,如果應(yīng)用在運(yùn)行時(shí)請(qǐng)求權(quán)限并且被授予該權(quán)限,系統(tǒng)會(huì)錯(cuò)誤地將屬于同一權(quán)限組并且在清單中注冊(cè)的其他權(quán)限也一起授予應(yīng)用。 對(duì)于針對(duì) Android 8.0 的應(yīng)用,此行為已被糾正。系統(tǒng)只會(huì)授予應(yīng)用明確請(qǐng)求的權(quán)限。然而,一旦用戶為應(yīng)用授予某個(gè)權(quán)限,則所有后續(xù)對(duì)該權(quán)限組中權(quán)限的請(qǐng)求都將被自動(dòng)批準(zhǔn)。 例如,假設(shè)某個(gè)應(yīng)用在其清單中列出 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 。應(yīng)用請(qǐng)求 READ_EXTERNAL_STORAGE ,并且用戶授予了該權(quán)限。如果該應(yīng)用針對(duì)的是 API 級(jí)別 24 或更低級(jí)別,系統(tǒng)還會(huì)同時(shí)授予 WRITE_EXTERNAL_STORAGE ,因?yàn)樵摍?quán)限也屬于同一 STORAGE 權(quán)限組并且也在清單中注冊(cè)過。如果該應(yīng)用針對(duì)的是 Android 8.0,則系統(tǒng)此時(shí)僅會(huì)授予 READ_EXTERNAL_STORAGE ;不過,如果該應(yīng)用后來又請(qǐng)求 WRITE_EXTERNAL_STORAGE ,則系統(tǒng)會(huì)立即授予該權(quán)限,而不會(huì)提示用戶。

android 9

隱私權(quán)限變更。

為了增強(qiáng)用戶隱私,Android 9 引入了若干行為變更,如限制后臺(tái)應(yīng)用訪問設(shè)備傳感器、限制通過 Wi-Fi 掃描檢索到的信息,以及與通話、手機(jī)狀態(tài)和 Wi-Fi 掃描相關(guān)的新權(quán)限規(guī)則和權(quán)限組。

android 10

隱私權(quán)變更。

外部存儲(chǔ)訪問權(quán)限范圍限定為應(yīng)用文件和媒體,在后臺(tái)運(yùn)行時(shí)訪問設(shè)備位置信息需要權(quán)限,針對(duì)從后臺(tái)啟動(dòng) Activity 的限制等。

android 11

隱私權(quán)限變更。

更詳細(xì)的版本變更請(qǐng)參考


分享文章:android應(yīng)用權(quán)限,android應(yīng)用權(quán)限manifest
轉(zhuǎn)載源于:http://weahome.cn/article/dssjssd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部