Android中的Permission權(quán)限機(jī)制介紹
Android 通過(guò)在每臺(tái)設(shè)備上實(shí)施了基于權(quán)限的安全策略來(lái)處理安全問(wèn)題,采用權(quán)限來(lái)限制安裝應(yīng)用程序的能力。當(dāng)某個(gè)權(quán)限與某個(gè)操作和資源對(duì)象綁定在一起,我們必須獲得這個(gè)權(quán)限才能在對(duì)象上執(zhí)行操作。由于Android設(shè)計(jì)本身就是為Android開(kāi)發(fā)人員著想,所以一切權(quán)限許可權(quán)由用戶決定而不是手機(jī)制造商和平臺(tái)提供商,但這不得不帶來(lái)了開(kāi)發(fā)者濫用權(quán)限,黑客通過(guò)權(quán)限來(lái)進(jìn)行惡意行為的風(fēng)險(xiǎn),所以作為靜態(tài)分析一個(gè)app是否為惡意軟件的第一道關(guān),獲取并了解Android Permission權(quán)限意義是十分重大的。
權(quán)限策略
Android 框架提供一套默認(rèn)的權(quán)限存儲(chǔ)在android.anifest.permission 類中,同時(shí)也允許我們自己定義新的權(quán)限。我們?cè)趯憫?yīng)用程序時(shí)聲明權(quán)限,程序安裝時(shí)新權(quán)限被引入系統(tǒng)。權(quán)限授權(quán)在應(yīng)用程序被安裝時(shí)執(zhí)行。當(dāng)在設(shè)備上安裝應(yīng)用程序時(shí),程序?qū)⒄?qǐng)求完成任務(wù)必需的權(quán)限集合。被請(qǐng)求的權(quán)限列單顯示在設(shè)備屏幕上以待用戶審查只有用戶同意授權(quán)后,程序才會(huì)被安裝,該應(yīng)用程序獲得所有被請(qǐng)求的權(quán)限。所以,Android 系統(tǒng)實(shí)施的主要安全準(zhǔn)則是應(yīng)用程序只有得到權(quán)限許可后,才能執(zhí)行可能會(huì)影響到系統(tǒng)其它部分的操作。
每個(gè)權(quán)限被定義成一個(gè)字符串,用來(lái)傳達(dá)權(quán)限以執(zhí)行某個(gè)特殊的操作。所有權(quán)限可以分為兩個(gè)類別:一種是執(zhí)行程序時(shí)被應(yīng)用程序所請(qǐng)求的權(quán)限,一種是應(yīng)用程序的組件之間通信時(shí)被其它組件請(qǐng)求的權(quán)限。開(kāi)發(fā)者通過(guò)在AndroidManifest.xml文件中編寫權(quán)限標(biāo)簽來(lái)定義以上兩種類別的權(quán)限策略。
權(quán)限聲明
應(yīng)用程序可以用一個(gè)<permission>元素來(lái)聲明權(quán)限, 用于限制訪問(wèn)特定組件或應(yīng)用程序 在安裝程序時(shí), 這個(gè)已聲明的權(quán)限被加入到系統(tǒng)中,具體可以參看:Android 自定義權(quán)限
權(quán)限請(qǐng)求
應(yīng)用程序列出所有需要用來(lái)完成任務(wù)的權(quán)限,分別用 <use-permission>元素標(biāo)識(shí)這些權(quán)限。在程序安裝時(shí)被請(qǐng)求,列表顯示在屏幕上用戶要么同意安裝,要么中止安裝。同意安裝則意味著授權(quán)所有被請(qǐng)求的權(quán)限。
獲取權(quán)限
獲取權(quán)限,是我們靜態(tài)分析某個(gè)app的第一關(guān),通過(guò)知道app所具有的權(quán)限,我們一般能夠基本知道該app或許會(huì)有那些行為。
工具:目前已有多個(gè)工具可以靜態(tài)檢測(cè)Android app所具有的Permissions,這類工具有:aapt、apktool、androguard等等;
相關(guān)文章
Android實(shí)現(xiàn)將View保存成Bitmap的方法
這篇文章主要介紹了Android實(shí)現(xiàn)將View保存成Bitmap的方法,涉及Android畫布Canvas、位圖bitmap及View的相關(guān)使用技巧,需要的朋友可以參考下2016-06-06
Android Bitmap的截取及狀態(tài)欄的隱藏和顯示功能
Bitmap是Android系統(tǒng)中的圖像處理中最重要類之一。Bitmap可以獲取圖像文件信息,對(duì)圖像進(jìn)行剪切、旋轉(zhuǎn)、縮放,壓縮等操作,并可以以指定格式保存圖像文件。這篇文章主要介紹了Android Bitmap的截取及狀態(tài)欄的隱藏和顯示功能,需要的朋友可以參考下2017-11-11
總結(jié)Android App內(nèi)存優(yōu)化之圖片優(yōu)化
網(wǎng)上有很多大拿分享的關(guān)于Android性能優(yōu)化的文章,主要是通過(guò)各種工具分析,使用合理的技巧優(yōu)化APP的體驗(yàn),提升APP的流暢度,但關(guān)于內(nèi)存優(yōu)化的文章很少有看到。下面是我在實(shí)踐過(guò)程中使用的一些方法,很多都是不太成熟的項(xiàng)目,只是將其作為一種處理方式分享給大家。2016-08-08
Android自定義手機(jī)界面狀態(tài)欄實(shí)例代碼
我們知道IOS上的應(yīng)用,狀態(tài)欄的顏色總能與應(yīng)用標(biāo)題欄顏色保持一致,用戶體驗(yàn)很不錯(cuò),那安卓是否可以呢?若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允許開(kāi)發(fā)者自定義狀態(tài)欄背景顏色啦,這是個(gè)不錯(cuò)的體驗(yàn)2017-03-03
Android ScrollView只能添加一個(gè)子控件問(wèn)題解決方法
這篇文章主要介紹了Android ScrollView只能添加一個(gè)子控件問(wèn)題解決方法,涉及Android界面布局的相關(guān)技巧,需要的朋友可以參考下2016-02-02
Android屬性動(dòng)畫實(shí)現(xiàn)圖片從左到右逐漸消失
這篇文章主要介紹了Android屬性動(dòng)畫實(shí)現(xiàn)圖片從左到右逐漸消失,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android動(dòng)態(tài)權(quán)限申請(qǐng)實(shí)現(xiàn)步驟分解
對(duì)于一些危險(xiǎn)權(quán)限在AndroidManifest清單文件中申請(qǐng)之后,還需要得到用戶的許可并打開(kāi),才算是真正的開(kāi)啟了這個(gè)權(quán)限。所以可以使用動(dòng)態(tài)申請(qǐng)權(quán)限,對(duì)于某個(gè)功能,如果需要開(kāi)啟某個(gè)權(quán)限,在用戶使用它之前,彈窗提示用戶是否要開(kāi)啟這個(gè)權(quán)限2023-04-04

