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

Commit 0ba657a2 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Allow packages to be enabled depending on sku value" into main

parents b6c0fff6 0c3ad80f
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -1319,6 +1319,7 @@ public class SystemConfig {
                        }
                        XmlUtils.skipCurrentTag(parser);
                    } break;
                    case "disabled-in-sku":
                    case "disabled-until-used-preinstalled-carrier-app": {
                        if (allowAppConfigs) {
                            String pkgname = parser.getAttributeValue(null, "package");
@@ -1335,6 +1336,24 @@ public class SystemConfig {
                        }
                        XmlUtils.skipCurrentTag(parser);
                    } break;
                    case "enabled-in-sku-override": {
                        if (allowAppConfigs) {
                            String pkgname = parser.getAttributeValue(null, "package");
                            if (pkgname == null) {
                                Slog.w(TAG,
                                        "<" + name + "> without "
                                                + "package in " + permFile + " at "
                                                + parser.getPositionDescription());
                            } else if (!mDisabledUntilUsedPreinstalledCarrierApps.remove(pkgname)) {
                                Slog.w(TAG,
                                        "<" + name + "> packagename:" + pkgname + " not included"
                                                + "in disabled-in-sku");
                            }
                        } else {
                            logNotAllowedInPartition(name, permFile, parser);
                        }
                        XmlUtils.skipCurrentTag(parser);
                    } break;
                    case "privapp-permissions": {
                        if (allowPrivappPermissions) {
                            // privapp permissions from system, apex, vendor, product and
+34 −0
Original line number Diff line number Diff line
@@ -691,6 +691,40 @@ public class SystemConfigTest {
        assertThat(actual).isEqualTo(expected);
    }

    /**
     * Tests that readPermissions works correctly for the tags:
     * disabled-in-sku, enabled-in-sku-override.
     * I.e. that disabled-in-sku add package to block list and
     * enabled-in-sku-override removes package from the list.
     */
    @Test
    public void testDisablePackageInSku() throws Exception {
        final String disable_in_sku =
                "<config>\n"
                        + "    <disabled-in-sku package=\"com.sony.product1.app\"/>\n"
                        + "    <disabled-in-sku package=\"com.sony.product2.app\"/>\n"
                        + "</config>\n";

        final String enable_in_sku_override =
                "<config>\n"
                        + "    <enabled-in-sku-override package=\"com.sony.product2.app\"/>\n"
                        + "</config>\n";

        final File folder1 = createTempSubfolder("folder1");
        createTempFile(folder1, "permissionFile1.xml", disable_in_sku);

        final File folder2 = createTempSubfolder("folder2");
        createTempFile(folder2, "permissionFile2.xml", enable_in_sku_override);

        readPermissions(folder1, /* Grant all permission flags */ ~0);
        readPermissions(folder2, /* Grant all permission flags */ ~0);

        final ArraySet<String> blocklist = mSysConfig.getDisabledUntilUsedPreinstalledCarrierApps();

        assertThat(blocklist).contains("com.sony.product1.app");
        assertThat(blocklist).doesNotContain("com.sony.product2.app");
    }

    private void parseSharedLibraries(String contents) throws IOException {
        File folder = createTempSubfolder("permissions_folder");
        createTempFile(folder, "permissions.xml", contents);