2014年5月10日 星期六

android 開發基礎 (三) – Permission

Android所有的應用程式都運行在Sandbox中, 預設只能取得某小部分的系統資源.

系統限制應用程式存取資源以避免使用不當或惡意使用.

一些受信任的應用程式可以透過Permission 機制取得被保護API的操作權.

這些被保護的API包括了:


  • Camera functions
  • Location data (GPS)
  • Bluetooth functions
  • Telephony functions
  • SMS/MMS functions
  • Network/data connections
Permission 有不同等級

以Using Permission 為例子:

通常AndroidManifest.xml會定義該程式的使用權限

較為低級的Permission 只需要在設計程式時候設定聲明. 在安裝程式時被允許即可以存取資源

高級的Permission 比如說要存取system等級的API 就只能透過兩種方式



1.在應用程式的 AndroidManifest.xml定義android:sharedUserId="android.uid.system"

到BSP目錄build\target\product\security找到platform.pk8與platform.x509.pem這兩個系統金鑰進行簽名即可取得權限

執行的指令 :  signapk platform.x509.pem platform.pk8 input.apk output.apk



2.在應用程式的 AndroidManifest.xml定義android:sharedUserId="android.uid.system"

Android.mk加入LOCAL_CERTIFICATE := platform

build之後此程式即可取得system權限



Android官方說明網址:

Android Security Overview

Using Permissions