summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author mrulhania <mrulhania@google.com> 2025-01-06 16:21:30 -0800
committer Manjeet Rulhania <mrulhania@google.com> 2025-01-07 08:29:41 -0800
commit7756a9bdd134680d600933341bc4b84bfcc2b61b (patch)
treeef77eb58bab7bb4106f7738acf32eed92c13e12c
parent6988e7a4a85b5e5ad8534849676afb43fd44ff83 (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.java14
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);