From d132711bc86aa08a1ca3b29b0dc7c70731ffa7fd Mon Sep 17 00:00:00 2001 From: Andrei Onea Date: Wed, 27 Apr 2022 16:43:53 +0000 Subject: [PATCH] Remove vendor apex privapp allowlist pruning This check will change to a runtime failure in a subsequent CL. Test: n/a Bug: 230449777 Change-Id: I0eb4fd6f069ba47a85bc18d3734935247bbc72a8 --- .../java/com/android/server/SystemConfig.java | 16 ----- .../server/systemconfig/SystemConfigTest.java | 61 ------------------- 2 files changed, 77 deletions(-) diff --git a/core/java/com/android/server/SystemConfig.java b/core/java/com/android/server/SystemConfig.java index 06d12b5195ab7..3436b9e75c650 100644 --- a/core/java/com/android/server/SystemConfig.java +++ b/core/java/com/android/server/SystemConfig.java @@ -682,7 +682,6 @@ public class SystemConfig { readPermissions(parser, Environment.buildPath(f, "etc", "permissions"), apexPermissionFlag); } - pruneVendorApexPrivappAllowlists(); } @VisibleForTesting @@ -1598,21 +1597,6 @@ public class SystemConfig { } } - /** - * Prunes out any privileged permission allowlists bundled in vendor apexes. - */ - @VisibleForTesting - public void pruneVendorApexPrivappAllowlists() { - for (String moduleName: mAllowedVendorApexes.keySet()) { - if (mApexPrivAppPermissions.containsKey(moduleName) - || mApexPrivAppDenyPermissions.containsKey(moduleName)) { - Slog.w(TAG, moduleName + " is a vendor apex, ignore its priv-app allowlist"); - mApexPrivAppPermissions.remove(moduleName); - mApexPrivAppDenyPermissions.remove(moduleName); - } - } - } - private void readInstallInUserType(XmlPullParser parser, Map> doInstallMap, Map> nonInstallMap) diff --git a/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java b/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java index 20486b3e396dc..e9171c0c35144 100644 --- a/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java +++ b/services/tests/servicestests/src/com/android/server/systemconfig/SystemConfigTest.java @@ -360,67 +360,6 @@ public class SystemConfigTest { .containsExactly("android.permission.BAR"); } - @Test - public void pruneVendorApexPrivappAllowlists_removeVendor() - throws Exception { - File apexDir = createTempSubfolder("apex"); - - // Read non-vendor apex permission allowlists - final String allowlistNonVendorContents = - "" - + "" - + "" - + ""; - File nonVendorPermDir = - createTempSubfolder("apex/com.android.non_vendor/etc/permissions"); - File nonVendorPermissionFile = - createTempFile(nonVendorPermDir, "permissions.xml", allowlistNonVendorContents); - XmlPullParser nonVendorParser = readXmlUntilStartTag(nonVendorPermissionFile); - mSysConfig.readApexPrivAppPermissions(nonVendorParser, nonVendorPermissionFile, - apexDir.toPath()); - - // Read vendor apex permission allowlists - final String allowlistVendorContents = - "" - + "" - + "" - + ""; - File vendorPermissionFile = - createTempFile(createTempSubfolder("apex/com.android.vendor/etc/permissions"), - "permissions.xml", allowlistNonVendorContents); - XmlPullParser vendorParser = readXmlUntilStartTag(vendorPermissionFile); - mSysConfig.readApexPrivAppPermissions(vendorParser, vendorPermissionFile, - apexDir.toPath()); - - // Read allowed vendor apex list - final String allowedVendorContents = - "\n" - + " \n" - + ""; - final File allowedVendorFolder = createTempSubfolder("folder"); - createTempFile(allowedVendorFolder, "vendor-apex-allowlist.xml", allowedVendorContents); - readPermissions(allowedVendorFolder, /* Grant all permission flags */ ~0); - - // Finally, prune non-vendor allowlists. - // There is no guarantee in which order the above reads will be done, however pruning - // will always happen last. - mSysConfig.pruneVendorApexPrivappAllowlists(); - - assertThat(mSysConfig.getApexPrivAppPermissions("com.android.non_vendor", - "com.android.apk_in_non_vendor_apex")) - .containsExactly("android.permission.FOO"); - assertThat(mSysConfig.getApexPrivAppDenyPermissions("com.android.non_vendor", - "com.android.apk_in_non_vendor_apex")) - .containsExactly("android.permission.BAR"); - assertThat(mSysConfig.getApexPrivAppPermissions("com.android.vendor", - "com.android.apk_in_vendor_apex")) - .isNull(); - assertThat(mSysConfig.getApexPrivAppDenyPermissions("com.android.vendor", - "com.android.apk_in_vendor_apex")) - .isNull(); - } - /** * Tests that readPermissions works correctly for a library with on-bootclasspath-before * and on-bootclasspath-since.