天天看點

Android系統10 RK3399 init程序啟動(二十二) SEAndroid 架構

說明

系統:Android10.0

裝置: FireFly RK3399 (ROC-RK3399-PC-PLUS)

前言

本章節介紹SEAndroid(Security Enhanced for Android Selinux整體架構, 了解整體,再去看細節就容易很多.

一, 框圖介紹: 

Android系統10 RK3399 init程式啟動(二十二) SEAndroid 架構

SEAndroid架構是由使用者空間和核心空間組成, 使用者空間安全保護機制中主要包含安全上下文(Security Context)、安全政策(Security  Policy)和安全服務(Security Server)等子產品,核心空間由LSM,AVC組成,LSM (linux security module)負責核心資源的安全通路控, 由它來決定一個主體通路一個客體是否是合法的,這個主體一般是指程序,而客體主要指資源, 而selinux是屬于LSM中實作的一種。

使用者空間 安全上下文(security Contex),包含各種xx_context上下文檔案
安全服務(Security Server),由PMS,installd,init,zygote幾個重要程序組成。
安全政策 (Security policy),主要是各種te檔案
核心空間  Linux安全子產品(SELinux LSM)(通常包括通路向量緩沖(Access Vector Cache),子產品會利用HOOK攔截接口, 對使用者空間調用接口進行安全校驗

   二, Selinux使用者空間和核心空間互動

Android系統10 RK3399 init程式啟動(二十二) SEAndroid 架構

從應用空間通過系統調用進入到核心空間, 初步會進行DAC檢查, 檢查通過後, 在selinux使能的情況下, 會調用LSM子系統的hook接口,進行安全檢查, 因為selinux具體實作了LSM子系統重點 hook接口, 是以最終會通過selinux進行權限檢查,通過後才會找到相應inode進行問檔案操作。

Android系統10 RK3399 init程式啟動(二十二) SEAndroid 架構

繼續閱讀