diff options
| author | 2025-01-06 16:21:30 -0800 | |
|---|---|---|
| committer | 2025-01-07 08:29:41 -0800 | |
| commit | 7756a9bdd134680d600933341bc4b84bfcc2b61b (patch) | |
| tree | ef77eb58bab7bb4106f7738acf32eed92c13e12c | |
| parent | 6988e7a4a85b5e5ad8534849676afb43fd44ff83 (diff) | |
Trigger role re-evaluation when package path change
The package path changes on every apk update. Instead
of adding more attributes, we will rely on package path
for role re-evaluation trigger. This will make sure
roles are granted or revoked correctly.
Test: atest CtsRoleTestCases
Test: atest RolePermissionOverrideTest
Bug: 351833816
Bug: 354187951
Bug: 354186073
FLAG: EXEMPT bug fix
Change-Id: I505831f220eb4aedce0c5bdd381a5fd304179828
| -rw-r--r-- | services/core/java/com/android/server/policy/role/RoleServicePlatformHelperImpl.java | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/policy/role/RoleServicePlatformHelperImpl.java b/services/core/java/com/android/server/policy/role/RoleServicePlatformHelperImpl.java index 7808c4ed50a4..e09ab600a1dc 100644 --- a/services/core/java/com/android/server/policy/role/RoleServicePlatformHelperImpl.java +++ b/services/core/java/com/android/server/policy/role/RoleServicePlatformHelperImpl.java @@ -28,7 +28,6 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.pm.ResolveInfo; -import android.content.pm.Signature; import android.os.Environment; import android.permission.flags.Flags; import android.provider.Settings; @@ -312,17 +311,10 @@ public class RoleServicePlatformHelperImpl implements RoleServicePlatformHelper DataOutputStream dataOutputStream = new DataOutputStream(new BufferedOutputStream(mdos)); packageManagerInternal.forEachInstalledPackage(pkg -> { try { - dataOutputStream.writeUTF(pkg.getPackageName()); - dataOutputStream.writeLong(pkg.getLongVersionCode()); + dataOutputStream.writeUTF(pkg.getPath()); dataOutputStream.writeInt(packageManagerInternal.getApplicationEnabledState( pkg.getPackageName(), userId)); - final Set<String> requestedPermissions = pkg.getRequestedPermissions(); - dataOutputStream.writeInt(requestedPermissions.size()); - for (String permissionName : requestedPermissions) { - dataOutputStream.writeUTF(permissionName); - } - final ArraySet<String> enabledComponents = packageManagerInternal.getEnabledComponents(pkg.getPackageName(), userId); final int enabledComponentsSize = CollectionUtils.size(enabledComponents); @@ -337,10 +329,6 @@ public class RoleServicePlatformHelperImpl implements RoleServicePlatformHelper for (int i = 0; i < disabledComponentsSize; i++) { dataOutputStream.writeUTF(disabledComponents.valueAt(i)); } - - for (final Signature signature : pkg.getSigningDetails().getSignatures()) { - dataOutputStream.write(signature.toByteArray()); - } } catch (IOException e) { // Never happens for MessageDigestOutputStream and DataOutputStream. throw new AssertionError(e); |