安卓安全平臺模型提供以下安全機制:
進程沙箱隔離機制:安卓應用程序在安裝時被賦予獨特的用戶標識(UID),并永久保持。應用程序及其運行的Dalvik虛擬機運行于獨立的Linux進程空間,與UID不同的應用程序完全隔離。
應用程序簽名機制:應用程序包(.apk文件)必須被開發者數字簽名。同一開發者可指定不同的應用程序共享UID,進而運行于同一進程空間,共享資源。
權限聲明機制:應用程序需要顯式聲明權限、名稱、權限組與保護級別。不同的級別要求應用程序行使此權限時的認證方式不同:Normal級申請即可用。Dangerous級需在安裝時由用戶確認才可用。簽名與簽名系統則必須是系統用戶才可用。
訪問控制機制:傳統的Linux訪問控制機制確保系統文件與用戶數據不受非法訪問。
進程通信機制:Binder進程通信機制提供基于共享內存的高效進程通信。Binder基于CS模式,提供類似COM與CORBA的輕量級遠程進程調用(RPC)。通過接口描述語言(AIDL)定義接口與交換數據的類型,確保進程間通信的數據不會溢出越界,污染進程空間。
內存管理機制:基于標準Linux的低內存管理機制(OOM),設計實現了獨特的低內存清理(LMK)機制,將進程按重要性分級、分組,當內存不足時,自動清理最低級別進程所占用的內存空間。同時,引入不同于傳統Linux共享內存機制的安卓共享內存機制Ashmem,具備清理不再使用共享內存區域的能力。
推薦文章