赞
踩
PMS 就是PackageManagerService,主要是负责应用的安装卸载更新等工作。
scanDirTracedLI(new File(VENDOR_OVERLAY_DIR), mDefParseFlags//0 wjc | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags//SCAN_BOOTING | SCAN_INITIAL|SCAN_FIRST_BOOT_OR_UPGRADE;wjc | SCAN_AS_SYSTEM | SCAN_AS_VENDOR, 0); scanDirTracedLI(new File(PRODUCT_OVERLAY_DIR), mDefParseFlags | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags | SCAN_AS_SYSTEM | SCAN_AS_PRODUCT, 0); /// M: Support RSC overlay dir sPmsExt.scanDirLI(PmsExt.INDEX_RSC_OVERLAY, mDefParseFlags, scanFlags, 0); mParallelPackageParserCallback.findStaticOverlayPackages(); // Find base frameworks (resource packages without code). scanDirTracedLI(frameworkDir, mDefParseFlags | PackageParser.PARSE_IS_SYSTEM_DIR, scanFlags | SCAN_NO_DEX | SCAN_AS_SYSTEM | SCAN_AS_PRIVILEGED, 0);
PMS 通过上面scanDirTracedLI来解析应用,并保持应用的信息。
如何保持信息,是通过本身的Settings类来实现的,这个类在com.android.server.pm
Settings(File dataDir, PermissionSettings permission, Object lock) { mLock = lock; mPermissions = permission; mRuntimePermissionsPersistence = new RuntimePermissionPersistence(mLock); mSystemDir = new File(dataDir, "system"); mSystemDir.mkdirs(); FileUtils.setPermissions(mSystemDir.toString(), FileUtils.S_IRWXU|FileUtils.S_IRWXG |FileUtils.S_IROTH|FileUtils.S_IXOTH, -1, -1); mSettingsFilename = new File(mSystemDir, "packages.xml"); mBackupSettingsFilename = new File(mSystemDir, "packages-backup.xml"); mPackageListFilename = new File(mSystemDir, "packages.list"); FileUtils.setPermissions(mPackageListFilename, 0640, SYSTEM_UID, PACKAGE_INFO_GID); final File kernelDir = new File("/config/sdcardfs"); mKernelMappingFilename = kernelDir.exists() ? kernelDir : null; // Deprecated: Needed for migration mStoppedPackagesFilename = new File(mSystemDir, "packages-stopped.xml"); mBackupStoppedPackagesFilename = new File(mSystemDir, "packages-stopped-backup.xml"); }
从上面看,主要是保持到data/system目录下的几个文件中
packages.xml维护的是应用包的基本信息,权限信息、用户权组信息等等。信息比较详细。
packages.list维护的是应用包列表,只是包含具体的包名以及存储的路径等等信息。
packages-stopped.xml 维护的是被停掉的应用
packages.list
com.mediatek.lbs.em2.ui 10054 0 /data/user/0/com.mediatek.lbs.em2.ui platform:targetSdkVersion=28 1023,3003
com.android.cts.ctsshim 10073 0 /data/user/0/com.android.cts.ctsshim default:targetSdkVersion=24 none
com.ais.mimo.eservice 10086 0 /data/user/0/com.ais.mimo.eservice default:targetSdkVersion=26 3003
com.android.vpndialogs 10040 0 /data/user/0/com.android.vpndialogs platform:privapp:targetSdkVersion=28 none
com.android.phone 1001 0 /data/user_de/0/com.android.phone platform:privapp:targetSdkVersion=26 1065,3002,1023,3003,3001,3007,1002,3010,3011,1004,2002,3006
com.android.shell 2000 0 /data/user_de/0/com.android.shell platform:privapp:targetSdkVersion=28 1065,3002,1023,1002,3010,3011
com.android.wallpaperbackup 1000 0 /data/user/0/com.android.wallpaperbackup platform:privapp:targetSdkVersion=28 1065,3002,1023,3003,3001,3005,3006
com.android.providers.blockednumber 10015 0 /data/user_de/0/com.android.providers.blockednumber default:privapp:targetSdkVersion=28 1065
com.android.providers.userdictionary 10015 0 /data/user/0/com.android.providers.userdictionary default:privapp:targetSdkVersion=28 1065
com.android.emergency 10008 0 /data/user_de/0/com.android.emergency platform:privapp:targetSdkVersion=28 none
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。