1. 程式人生 > >PMS構造函數以及apk如何掃描

PMS構造函數以及apk如何掃描

分配 title private ont oem ase 數據 sha 三方

一、PackageManagerService構造函數

  1.創建data目錄下面以及文件(settings的構造函數),然後再添加6個SharedUserSetting

  2.開始掃描並且解析APK

  3.實例化SystemConfig並獲得mGlobalGids, mSystemPermissions, mAvailableFeatures,mSharedLibraries

    a.mGlobalGids : 建立底層user idsgroup ids同上層permissions之間的映射;可以指定一個權限和幾個組id的對應。當一個APK被授予這個權限時,它也同時屬於這幾個組

b.mSystemPermissions : 給一些底層用戶分配權限,如給 shell 授予各種 permission 權限;把一個權限賦予一個UID,當進程使用這個 UID 運行時,就具備了這個權限

c. mAvailableFeatures : 系統所有支持的個硬件,如新增硬件支持,都要添加相應的feature

d. mSharedLibraries : 系統增加的一些應用需要 link 的擴展 jar

4. 在data目錄下建立多個系統目錄,如/data/app(用於保存安裝的第三方apk包), /data/data(用於保存apk數據), /data/app-lib, /data/app-asec, /data/user, /data/app-private

   5.將權限分配給package manager

6 . 分別按照優先級掃描解析並安裝/vendor/overlay > /system/framework >/system/priv-app > /system/app > /vendor/app >oemAppDir下的所有apk文件

二、解析apk的流程:

  一些重要參數的解讀

  1.mPackages 是包名和包對象的映射表,mPackages會保存所有的已安裝apk信息

PMS構造函數以及apk如何掃描