控制Android應用的權限的方法
這篇文章目的在于介紹Anapple storedroid系統上控制權限的方法,讀者只要使用過Android,或是對智能機平台有所了解,就能看懂,不需要專門的編程知識。
1 爲什麽Android總是事無巨細地告訴你應用索取的每一項權限?
相比Apple,Microsoft嚴格控制生態系統(從蘋果給開發者的"App Store Guideline"可見一斑),只允許通過官方應用商店安裝應用,並對每份上傳進行仔細地審查而言,Android的開放就意味著,Google需要向用戶提供一系列用于爲自己負責的流程、工具。所以在安裝應用前,Android總是要事無巨細地告訴你,應用肯需要控制什麽權限。
同樣,開發者也制作了一系列易用的工具,用以鑒別可疑的應用程序,或是控制權限。
圖1 Android 官方市場會強制提醒用
Andoird哪裏開放了?
在Android中,用戶能自由從本地安裝應用,自由地對SD卡進行操作,自由選擇應用市場。
如果願意放棄保修,用戶還能輕易地實行root,解鎖基帶(baseband)。只有一些産品會嚴密地鎖定bootloader(如摩托羅拉)。
最重要的是,因爲ASOP(Android源代碼開放計劃)的存在,絕大部分的Android代碼都是開源的,開發者可以由此對Android系統進行深入的修改,甚至可以自行編寫一個符合Android規範的系統實例(如Cyanogen Mod)。正是因爲ASOP,這篇文章才可能介紹多達5種原理不同的權限控制方法。
開放的風險
不考慮Symbianandroid手機有哪些,Windows Phone 6。5(及以下)平台,那麽幾乎所有的智能手機病毒都是Android平台的,甚至官方Android Marketapp是什麼也鬧過幾次烏龍。在國內水貨橫行的市場,情況更是火上澆油,不法業者可以在手機的ROM,甚至是bootloader中做好手腳,讓用戶有病無法醫。
在Android中,用戶可以允許系統安裝來自"未知源"(也就是非Google官方的,或手機預置市場的)應用程序。于是,移動平台最重要的門神數字簽名就被繞過了。
Android 允許未知安裝未知來源的應用程
出于Android的開放性,也有不允許"未知源"的反例:亞馬遜的Kindle Fire平板使用了深度定制的Android,它只允許安裝來自亞馬遜官方商店android app的應用程序。
亞馬遜的android是什麼 Kindle Fire 僅允許通過自帶的市場安裝應用
首先需要明確一下Android中的種種"權限"。Android是在Linux內核上建立一個硬件抽象層(Android HAL),通過Dalvik以及各種庫來執行android應用的。在手機啓動時,首先需要由Bootloader(HTC手機上稱作Hboot)引whatsapp導Linux及手機上各個硬件設備的驅動程序,之後才啓動Android系統。所以其實我們會涉及到四種不同涵義的權限:
Android權限(Permission)
這指Android中的一系列"Android。Permission。*"對象,是本文的中心內容。
Google在Android框架內把各種對象(包括設備上的各類數據,傳感器,撥打電app話,發送信息,控制別的應用程序等)的訪問權限進行了詳細的劃分,列出了約一百條"Android。Permission"。應用程序在運行前必須向Android系統聲明它將會用到的權限,否則Android將會拒絕該應用程序訪問通過該"Permission"許可的內容。
比方說,搜狗輸入法提供了一個智能通訊錄的功能,用戶可以在輸入聯系人拼音的前幾個字符,或首字母,輸入法就能自動呈現相關聯系人的名字。爲了實現這個功能,輸入法必須聲明它需要讀取手機中聯系人的能力,也就是在相關代碼中加上聲明"android。permission。READ_CONTACTS"對象。