当前位置:   article > 正文

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

scan_as_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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

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");
    }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

从上面看,主要是保持到data/system目录下的几个文件中

data/system 几个重要文件


    packages.xml维护的是应用包的基本信息,权限信息、用户权组信息等等。信息比较详细。
    packages.list维护的是应用包列表,只是包含具体的包名以及存储的路径等等信息。
    packages-stopped.xml 维护的是被停掉的应用
  • 1
  • 2
  • 3
  • 4

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号