Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 58b78370 authored by Jakub Adámek's avatar Jakub Adámek Committed by Android (Google) Code Review
Browse files

Merge "Search for runtime resource overlays in Java in subdir." into cw-f-dev

parents 9f79e64b e9ac5b42
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -463,6 +463,12 @@ public class PackageManagerService extends IPackageManager.Stub {
    private static final String PACKAGE_SCHEME = "package";
    private static final String VENDOR_OVERLAY_DIR = "/vendor/overlay";
    /**
     * If VENDOR_OVERLAY_SKU_PROPERTY is set, search for runtime resource overlay APKs in
     * VENDOR_OVERLAY_DIR/<value of VENDOR_OVERLAY_SKU_PROPERTY> rather than in
     * VENDOR_OVERLAY_DIR.
     */
    private static final String VENDOR_OVERLAY_SKU_PROPERTY = "ro.boot.vendor.overlay.sku";
    private static int DEFAULT_EPHEMERAL_HASH_PREFIX_MASK = 0xFFFFF000;
    private static int DEFAULT_EPHEMERAL_HASH_PREFIX_COUNT = 5;
@@ -2268,8 +2274,14 @@ public class PackageManagerService extends IPackageManager.Stub {
            // Collect vendor overlay packages.
            // (Do this before scanning any apps.)
            // For security and version matching reason, only consider
            // overlay packages if they reside in VENDOR_OVERLAY_DIR.
            File vendorOverlayDir = new File(VENDOR_OVERLAY_DIR);
            // overlay packages if they reside in the right directory.
            File vendorOverlayDir;
            String overlaySkuDir = SystemProperties.get(VENDOR_OVERLAY_SKU_PROPERTY);
            if (!overlaySkuDir.isEmpty()) {
                vendorOverlayDir = new File(VENDOR_OVERLAY_DIR, overlaySkuDir);
            } else {
                vendorOverlayDir = new File(VENDOR_OVERLAY_DIR);
            }
            scanDirTracedLI(vendorOverlayDir, mDefParseFlags
                    | PackageParser.PARSE_IS_SYSTEM
                    | PackageParser.PARSE_IS_SYSTEM_DIR