android p data/system目录下几个重要文件的作用

PMS

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目录下的几个文件中

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值