From 61545a7efd635fb0701c4376e5abf6611e76cd4f Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Wed, 20 Jan 2021 17:15:30 -0800 Subject: [PATCH] Deprecate RoleControllerService related system APIs. The RoleControllerService is an internal implementation detail of role, and was exposed as system API in platform before modularization and the ability to have updatable code in system server. Now that we have our updatable system server JAR, this should no longer be exposed and we may refactor the implementation for better performance/stability later. Hence deprecate them now in S for the earliest possible removal of these APIs. Bug: 158736025 Test: presubmit Change-Id: I1358e16ad0e9cf875316d93dd2152001c13b84dd --- .../framework-s/api/system-current.txt | 28 +++++++++---------- .../app/role/RoleControllerService.java | 4 +++ .../java/android/app/role/RoleManager.java | 16 +++++++++++ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/apex/permission/framework-s/api/system-current.txt b/apex/permission/framework-s/api/system-current.txt index e87f124453b4f..6778d4826841e 100644 --- a/apex/permission/framework-s/api/system-current.txt +++ b/apex/permission/framework-s/api/system-current.txt @@ -5,17 +5,17 @@ package android.app.role { method public void onRoleHoldersChanged(@NonNull String, @NonNull android.os.UserHandle); } - public abstract class RoleControllerService extends android.app.Service { - ctor public RoleControllerService(); - method @WorkerThread public abstract boolean onAddRoleHolder(@NonNull String, @NonNull String, int); - method @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent); - method @WorkerThread public abstract boolean onClearRoleHolders(@NonNull String, int); - method @WorkerThread public abstract boolean onGrantDefaultRoles(); + @Deprecated public abstract class RoleControllerService extends android.app.Service { + ctor @Deprecated public RoleControllerService(); + method @Deprecated @WorkerThread public abstract boolean onAddRoleHolder(@NonNull String, @NonNull String, int); + method @Deprecated @Nullable public final android.os.IBinder onBind(@Nullable android.content.Intent); + method @Deprecated @WorkerThread public abstract boolean onClearRoleHolders(@NonNull String, int); + method @Deprecated @WorkerThread public abstract boolean onGrantDefaultRoles(); method @Deprecated public abstract boolean onIsApplicationQualifiedForRole(@NonNull String, @NonNull String); - method public boolean onIsApplicationVisibleForRole(@NonNull String, @NonNull String); - method public abstract boolean onIsRoleVisible(@NonNull String); - method @WorkerThread public abstract boolean onRemoveRoleHolder(@NonNull String, @NonNull String, int); - field public static final String SERVICE_INTERFACE = "android.app.role.RoleControllerService"; + method @Deprecated public boolean onIsApplicationVisibleForRole(@NonNull String, @NonNull String); + method @Deprecated public abstract boolean onIsRoleVisible(@NonNull String); + method @Deprecated @WorkerThread public abstract boolean onRemoveRoleHolder(@NonNull String, @NonNull String, int); + field @Deprecated public static final String SERVICE_INTERFACE = "android.app.role.RoleControllerService"; } public class RoleFrameworkInitializer { @@ -25,17 +25,17 @@ package android.app.role { public final class RoleManager { method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void addOnRoleHoldersChangedListenerAsUser(@NonNull java.util.concurrent.Executor, @NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void addRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); - method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String); + method @Deprecated @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean addRoleHolderFromController(@NonNull String, @NonNull String); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void clearRoleHoldersAsUser(@NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); - method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List getHeldRolesFromController(@NonNull String); + method @Deprecated @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List getHeldRolesFromController(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List getRoleHolders(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isApplicationVisibleForRole(@NonNull String, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isRoleVisible(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); method @RequiresPermission(android.Manifest.permission.OBSERVE_ROLE_HOLDERS) public void removeOnRoleHoldersChangedListenerAsUser(@NonNull android.app.role.OnRoleHoldersChangedListener, @NonNull android.os.UserHandle); method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void removeRoleHolderAsUser(@NonNull String, @NonNull String, int, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); - method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String); - method @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public void setRoleNamesFromController(@NonNull java.util.List); + method @Deprecated @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public boolean removeRoleHolderFromController(@NonNull String, @NonNull String); + method @Deprecated @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public void setRoleNamesFromController(@NonNull java.util.List); field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1 } diff --git a/apex/permission/framework-s/java/android/app/role/RoleControllerService.java b/apex/permission/framework-s/java/android/app/role/RoleControllerService.java index 6ef9e445d1c97..cf7872913f26b 100644 --- a/apex/permission/framework-s/java/android/app/role/RoleControllerService.java +++ b/apex/permission/framework-s/java/android/app/role/RoleControllerService.java @@ -44,8 +44,12 @@ import java.util.concurrent.Executor; * requirements and granting or revoking relevant privileges of roles. This class can only be * implemented by the permission controller app which is registered in {@code PackageManager}. * + * @deprecated The role controller service is an internal implementation detail inside role, and it + * may be replaced by other mechanisms in the future and no longer be called. + * * @hide */ +@Deprecated @SystemApi public abstract class RoleControllerService extends Service { diff --git a/apex/permission/framework-s/java/android/app/role/RoleManager.java b/apex/permission/framework-s/java/android/app/role/RoleManager.java index e545a75ca64f9..ceccc4cfc9f75 100644 --- a/apex/permission/framework-s/java/android/app/role/RoleManager.java +++ b/apex/permission/framework-s/java/android/app/role/RoleManager.java @@ -521,8 +521,12 @@ public final class RoleManager { * * @param roleNames the names of all the available roles * + * @deprecated This is only usable by the role controller service, which is an internal + * implementation detail inside role. + * * @hide */ + @Deprecated @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER) @SystemApi public void setRoleNamesFromController(@NonNull List roleNames) { @@ -551,8 +555,12 @@ public final class RoleManager { * @see #getRoleHolders(String) * @see #removeRoleHolderFromController(String, String) * + * @deprecated This is only usable by the role controller service, which is an internal + * implementation detail inside role. + * * @hide */ + @Deprecated @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER) @SystemApi public boolean addRoleHolderFromController(@NonNull String roleName, @@ -583,8 +591,12 @@ public final class RoleManager { * @see #getRoleHolders(String) * @see #addRoleHolderFromController(String, String) * + * @deprecated This is only usable by the role controller service, which is an internal + * implementation detail inside role. + * * @hide */ + @Deprecated @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER) @SystemApi public boolean removeRoleHolderFromController(@NonNull String roleName, @@ -604,8 +616,12 @@ public final class RoleManager { * @param packageName the package name * @return the list of role names * + * @deprecated This is only usable by the role controller service, which is an internal + * implementation detail inside role. + * * @hide */ + @Deprecated @NonNull @RequiresPermission(PERMISSION_MANAGE_ROLES_FROM_CONTROLLER) @SystemApi