summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Richard MacGregor <rmacgregor@google.com> 2025-01-23 14:51:14 -0800
committer Richard MacGregor <rmacgregor@google.com> 2025-02-11 15:38:53 -0800
commit2145a560fc739a4413c4d578e68675195284151a (patch)
tree0fbf2b6f9aaa7bcf843bdeb539fe91c39bffd9a4
parent546848004ec2bde4eb3d5cdf3c95bde4fa680fd0 (diff)
RESTRICT AUTOMERGE Add missing preconditions to get/setDefaultApplicationAsUser
Add missing preconditions to ensure these methods are not called on APIs lower than U Bug: 379362792 Flag: EXEMPT bug fix Relnote: Fix API preconditions Test: atest RoleManagerSecurityTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:091d8d434a24b967deaeb5803c59f8c2310b4fbf) Merged-In: Iadc97d09cf083e2525de421362c5a4bece92ee8a Change-Id: Iadc97d09cf083e2525de421362c5a4bece92ee8a
-rw-r--r--service/java/com/android/role/RoleService.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/service/java/com/android/role/RoleService.java b/service/java/com/android/role/RoleService.java
index 485be4e72..6568c2fa7 100644
--- a/service/java/com/android/role/RoleService.java
+++ b/service/java/com/android/role/RoleService.java
@@ -55,6 +55,7 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.infra.AndroidFuture;
import com.android.internal.util.Preconditions;
import com.android.internal.util.dump.DualDumpOutputStream;
+import com.android.modules.utils.build.SdkLevel;
import com.android.permission.compat.UserHandleCompat;
import com.android.permission.util.ArrayUtils;
import com.android.permission.util.CollectionUtils;
@@ -483,6 +484,9 @@ public class RoleService extends SystemService implements RoleUserState.Callback
@Override
@Nullable
public String getDefaultApplicationAsUser(@NonNull String roleName, @UserIdInt int userId) {
+ // The MANAGE_DEFAULT_APPLICATIONS permission is only available on U+
+ Preconditions.checkState(SdkLevel.isAtLeastU(),
+ "This API is only available on Android 34 and above");
UserUtils.enforceCrossUserPermission(userId, false, "getDefaultApplicationAsUser",
getContext());
if (!UserUtils.isUserExistent(userId, getContext())) {
@@ -508,6 +512,9 @@ public class RoleService extends SystemService implements RoleUserState.Callback
public void setDefaultApplicationAsUser(@NonNull String roleName,
@Nullable String packageName, @RoleManager.ManageHoldersFlags int flags,
@UserIdInt int userId, @NonNull RemoteCallback callback) {
+ // The MANAGE_DEFAULT_APPLICATIONS permission is only available on U+
+ Preconditions.checkState(SdkLevel.isAtLeastU(),
+ "This API is only available on Android 34 and above");
UserUtils.enforceCrossUserPermission(userId, false, "setDefaultApplicationAsUser",
getContext());
if (!UserUtils.isUserExistent(userId, getContext())) {