diff options
| author | 2021-01-25 07:06:09 +0000 | |
|---|---|---|
| committer | 2021-01-25 07:06:09 +0000 | |
| commit | 490f3915b0c1c51993bb40d8a93a845cdfaec42c (patch) | |
| tree | 9930c78eebecd468ecdd13a99631984c4c882c6c | |
| parent | 922f2c43309694c2e49ec0db108550df3216fac9 (diff) | |
| parent | 61545a7efd635fb0701c4376e5abf6611e76cd4f (diff) | |
Merge changes from topic "role-mainline"
* changes:
Deprecate RoleControllerService related system APIs.
Move role into module.
45 files changed, 351 insertions, 133 deletions
diff --git a/Android.bp b/Android.bp index c957aed4a8b9..d170913150c5 100644 --- a/Android.bp +++ b/Android.bp @@ -761,6 +761,7 @@ gensrcs { ":libstats_atom_enum_protos", "core/proto/**/*.proto", "libs/incident/**/*.proto", + ":service-permission-protos", ], output_extension: "srcjar", } @@ -788,6 +789,7 @@ gensrcs { ":libstats_atom_enum_protos", "core/proto/**/*.proto", "libs/incident/**/*.proto", + ":service-permission-protos", ], output_extension: "proto.h", @@ -796,6 +798,9 @@ gensrcs { filegroup { name: "framework-annotations", srcs: [ + "core/java/android/annotation/AnyThread.java", + "core/java/android/annotation/AppIdInt.java", + "core/java/android/annotation/CallSuper.java", "core/java/android/annotation/CallbackExecutor.java", "core/java/android/annotation/CheckResult.java", "core/java/android/annotation/CurrentTimeMillisLong.java", @@ -803,6 +808,7 @@ filegroup { "core/java/android/annotation/IntDef.java", "core/java/android/annotation/IntRange.java", "core/java/android/annotation/LongDef.java", + "core/java/android/annotation/MainThread.java", "core/java/android/annotation/NonNull.java", "core/java/android/annotation/Nullable.java", "core/java/android/annotation/RequiresPermission.java", @@ -812,6 +818,7 @@ filegroup { "core/java/android/annotation/SystemApi.java", "core/java/android/annotation/SystemService.java", "core/java/android/annotation/TestApi.java", + "core/java/android/annotation/UserIdInt.java", "core/java/android/annotation/WorkerThread.java", "core/java/com/android/internal/annotations/GuardedBy.java", "core/java/com/android/internal/annotations/VisibleForTesting.java", @@ -906,6 +913,30 @@ filegroup { ], } +// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module. +filegroup { + name: "framework-permission-s-shared-srcs", + srcs: [ + "core/java/com/android/internal/infra/AndroidFuture.java", + "core/java/com/android/internal/infra/ServiceConnector.java", + "core/java/com/android/internal/util/Preconditions.java", + "core/java/com/android/internal/infra/AndroidFuture.aidl", + "core/java/com/android/internal/infra/IAndroidFuture.aidl", + "core/java/android/os/HandlerExecutor.java", + ], + path: "core/java", +} + +// Keep these files in sync with the apex/permission/jarjar-rules.txt for the permission module. +filegroup { + name: "service-permission-shared-srcs", + srcs: [ + "core/java/android/util/IndentingPrintWriter.java", + "core/java/com/android/internal/util/dump/DualDumpOutputStream.java", + ], + path: "core/java", +} + // Build ext.jar // ============================================================ java_library { @@ -932,6 +963,7 @@ java_library_host { "cmds/statsd/src/**/*.proto", "core/proto/**/*.proto", "libs/incident/proto/**/*.proto", + ":service-permission-protos", ], proto: { include_dirs: [ @@ -965,6 +997,7 @@ java_library { ":libstats_atom_enum_protos", "core/proto/**/*.proto", "libs/incident/proto/android/os/**/*.proto", + ":service-permission-protos", ], } @@ -981,6 +1014,7 @@ java_library { ":libstats_atom_enum_protos", "core/proto/**/*.proto", "libs/incident/proto/android/os/**/*.proto", + ":service-permission-protos", ], exclude_srcs: [ "core/proto/android/privacy.proto", @@ -1015,6 +1049,7 @@ cc_defaults { ":ipconnectivity-proto-src", ":libstats_atom_enum_protos", "core/proto/**/*.proto", + ":service-permission-protos", ], } diff --git a/apex/permission/Android.bp b/apex/permission/Android.bp index d839df3708da..be51143e4730 100644 --- a/apex/permission/Android.bp +++ b/apex/permission/Android.bp @@ -42,3 +42,8 @@ android_app_certificate { name: "com.android.permission.certificate", certificate: "com.android.permission", } + +filegroup { + name: "permission-jarjar-rules", + srcs: ["jarjar-rules.txt"], +} diff --git a/apex/permission/framework-s/Android.bp b/apex/permission/framework-s/Android.bp index c621a04cad49..89840f74b098 100644 --- a/apex/permission/framework-s/Android.bp +++ b/apex/permission/framework-s/Android.bp @@ -22,12 +22,34 @@ filegroup { visibility: ["//frameworks/base"], } +java_library { + name: "framework-permission-s-shared", + srcs: [":framework-permission-s-shared-srcs"], + libs: [ + "framework-annotations-lib", + "unsupportedappusage", + ], + apex_available: [ + "com.android.permission", + "test_com.android.permission", + ], + installable: false, + min_sdk_version: "30", + sdk_version: "module_current", +} + java_sdk_library { name: "framework-permission-s", defaults: ["framework-module-defaults"], srcs: [ ":framework-permission-s-sources", ], + libs: [ + "framework-annotations-lib" + ], + static_libs: [ + "framework-permission-s-shared", + ], apex_available: [ "com.android.permission", "test_com.android.permission", @@ -36,9 +58,12 @@ java_sdk_library { // Restrict access to implementation library. impl_library_visibility: ["//frameworks/base/apex/permission:__subpackages__"], installable: true, + jarjar_rules: ":permission-jarjar-rules", min_sdk_version: "30", permitted_packages: [ "android.permission", "android.app.role", + // For com.android.permission.jarjar. + "com.android.permission", ], } diff --git a/apex/permission/framework-s/api/current.txt b/apex/permission/framework-s/api/current.txt index d802177e249b..4ecc98980c43 100644 --- a/apex/permission/framework-s/api/current.txt +++ b/apex/permission/framework-s/api/current.txt @@ -1 +1,19 @@ // Signature format: 2.0 +package android.app.role { + + public final class RoleManager { + method @NonNull public android.content.Intent createRequestRoleIntent(@NonNull String); + method public boolean isRoleAvailable(@NonNull String); + method public boolean isRoleHeld(@NonNull String); + field public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; + field public static final String ROLE_BROWSER = "android.app.role.BROWSER"; + field public static final String ROLE_CALL_REDIRECTION = "android.app.role.CALL_REDIRECTION"; + field public static final String ROLE_CALL_SCREENING = "android.app.role.CALL_SCREENING"; + field public static final String ROLE_DIALER = "android.app.role.DIALER"; + field public static final String ROLE_EMERGENCY = "android.app.role.EMERGENCY"; + field public static final String ROLE_HOME = "android.app.role.HOME"; + field public static final String ROLE_SMS = "android.app.role.SMS"; + } + +} + diff --git a/apex/permission/framework-s/api/module-lib-current.txt b/apex/permission/framework-s/api/module-lib-current.txt index d802177e249b..d7c9a2395c04 100644 --- a/apex/permission/framework-s/api/module-lib-current.txt +++ b/apex/permission/framework-s/api/module-lib-current.txt @@ -1 +1,11 @@ // Signature format: 2.0 +package android.app.role { + + public final class RoleManager { + method @Nullable public String getBrowserRoleHolder(int); + method @Nullable public String getSmsRoleHolder(int); + method @Nullable @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public boolean setBrowserRoleHolder(@Nullable String, int); + } + +} + diff --git a/apex/permission/framework-s/api/system-current.txt b/apex/permission/framework-s/api/system-current.txt index d802177e249b..6778d4826841 100644 --- a/apex/permission/framework-s/api/system-current.txt +++ b/apex/permission/framework-s/api/system-current.txt @@ -1 +1,43 @@ // Signature format: 2.0 +package android.app.role { + + public interface OnRoleHoldersChangedListener { + method public void onRoleHoldersChanged(@NonNull String, @NonNull android.os.UserHandle); + } + + @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 @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 { + method public static void registerServiceWrappers(); + } + + 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<java.lang.Boolean>); + 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<java.lang.Boolean>); + method @Deprecated @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String); + method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHolders(@NonNull String); + method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> 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<java.lang.Boolean>); + method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isRoleVisible(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); + 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<java.lang.Boolean>); + 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<java.lang.String>); + field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1 + } + +} + diff --git a/core/java/android/app/role/IOnRoleHoldersChangedListener.aidl b/apex/permission/framework-s/java/android/app/role/IOnRoleHoldersChangedListener.aidl index 6cf961fad2c4..6cf961fad2c4 100644 --- a/core/java/android/app/role/IOnRoleHoldersChangedListener.aidl +++ b/apex/permission/framework-s/java/android/app/role/IOnRoleHoldersChangedListener.aidl diff --git a/core/java/android/app/role/IRoleController.aidl b/apex/permission/framework-s/java/android/app/role/IRoleController.aidl index 8a43d7fa9036..8a43d7fa9036 100644 --- a/core/java/android/app/role/IRoleController.aidl +++ b/apex/permission/framework-s/java/android/app/role/IRoleController.aidl diff --git a/core/java/android/app/role/IRoleManager.aidl b/apex/permission/framework-s/java/android/app/role/IRoleManager.aidl index 5fc25f0422e2..5fc25f0422e2 100644 --- a/core/java/android/app/role/IRoleManager.aidl +++ b/apex/permission/framework-s/java/android/app/role/IRoleManager.aidl diff --git a/core/java/android/app/role/OnRoleHoldersChangedListener.java b/apex/permission/framework-s/java/android/app/role/OnRoleHoldersChangedListener.java index 5958debc86dd..5958debc86dd 100644 --- a/core/java/android/app/role/OnRoleHoldersChangedListener.java +++ b/apex/permission/framework-s/java/android/app/role/OnRoleHoldersChangedListener.java diff --git a/core/java/android/app/role/RoleControllerManager.java b/apex/permission/framework-s/java/android/app/role/RoleControllerManager.java index 93a7ae0c82c0..93a7ae0c82c0 100644 --- a/core/java/android/app/role/RoleControllerManager.java +++ b/apex/permission/framework-s/java/android/app/role/RoleControllerManager.java diff --git a/core/java/android/app/role/RoleControllerService.java b/apex/permission/framework-s/java/android/app/role/RoleControllerService.java index 6ef9e445d1c9..cf7872913f26 100644 --- a/core/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/core/java/android/app/role/RoleFrameworkInitializer.java b/apex/permission/framework-s/java/android/app/role/RoleFrameworkInitializer.java index 15a324f050c8..7a97770ecf0f 100644 --- a/core/java/android/app/role/RoleFrameworkInitializer.java +++ b/apex/permission/framework-s/java/android/app/role/RoleFrameworkInitializer.java @@ -16,6 +16,7 @@ package android.app.role; +import android.annotation.SystemApi; import android.app.SystemServiceRegistry; import android.content.Context; @@ -24,7 +25,7 @@ import android.content.Context; * * @hide */ -//@SystemApi +@SystemApi public class RoleFrameworkInitializer { private RoleFrameworkInitializer() {} diff --git a/core/java/android/app/role/RoleManager.java b/apex/permission/framework-s/java/android/app/role/RoleManager.java index 73f9c747b074..ceccc4cfc9f7 100644 --- a/core/java/android/app/role/RoleManager.java +++ b/apex/permission/framework-s/java/android/app/role/RoleManager.java @@ -24,7 +24,6 @@ import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; -import android.annotation.TestApi; import android.annotation.UserIdInt; import android.content.Context; import android.content.Intent; @@ -522,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<String> roleNames) { @@ -552,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, @@ -584,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, @@ -605,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 @@ -630,7 +645,7 @@ public final class RoleManager { * @hide */ @Nullable - //@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public String getBrowserRoleHolder(@UserIdInt int userId) { try { return mService.getBrowserRoleHolder(userId); @@ -653,7 +668,7 @@ public final class RoleManager { */ @Nullable @RequiresPermission(Manifest.permission.SET_PREFERRED_APPLICATIONS) - //@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public boolean setBrowserRoleHolder(@Nullable String packageName, @UserIdInt int userId) { try { return mService.setBrowserRoleHolder(packageName, userId); @@ -674,7 +689,6 @@ public final class RoleManager { */ @Nullable @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) - @TestApi public String getSmsRoleHolder(@UserIdInt int userId) { try { return mService.getSmsRoleHolder(userId); @@ -693,7 +707,7 @@ public final class RoleManager { * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) - @TestApi + @SystemApi public void isRoleVisible(@NonNull String roleName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { getRoleControllerManager().isRoleVisible(roleName, executor, callback); @@ -714,7 +728,7 @@ public final class RoleManager { * @hide */ @RequiresPermission(Manifest.permission.MANAGE_ROLE_HOLDERS) - @TestApi + @SystemApi public void isApplicationVisibleForRole(@NonNull String roleName, @NonNull String packageName, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { getRoleControllerManager().isApplicationVisibleForRole(roleName, packageName, executor, diff --git a/core/java/android/app/role/TEST_MAPPING b/apex/permission/framework-s/java/android/app/role/TEST_MAPPING index f8f140dd716e..f8f140dd716e 100644 --- a/core/java/android/app/role/TEST_MAPPING +++ b/apex/permission/framework-s/java/android/app/role/TEST_MAPPING diff --git a/apex/permission/jarjar-rules.txt b/apex/permission/jarjar-rules.txt new file mode 100644 index 000000000000..4729ed13dc4c --- /dev/null +++ b/apex/permission/jarjar-rules.txt @@ -0,0 +1,5 @@ +rule android.os.HandlerExecutor com.android.permission.jarjar.@0 +rule android.util.IndentingPrintWriter com.android.permission.jarjar.@0 +rule com.android.internal.** com.android.permission.jarjar.@0 +rule com.android.modules.** com.android.permission.jarjar.@0 +rule com.android.role.*Proto com.android.permission.jarjar.@0 diff --git a/apex/permission/service/Android.bp b/apex/permission/service/Android.bp index 349eeb422401..b7f808214507 100644 --- a/apex/permission/service/Android.bp +++ b/apex/permission/service/Android.bp @@ -21,6 +21,56 @@ filegroup { visibility: ["//frameworks/base/services"], } +filegroup { + name: "service-permission-protos", + srcs: [ + "proto/**/*.proto", + ], + visibility: ["//frameworks/base"], +} + +gensrcs { + name: "service-permission-javastream-protos", + depfile: true, + + tools: [ + "aprotoc", + "protoc-gen-javastream", + "soong_zip", + ], + + cmd: "mkdir -p $(genDir)/$(in) " + + "&& $(location aprotoc) " + + " --plugin=$(location protoc-gen-javastream) " + + " --dependency_out=$(depfile) " + + " --javastream_out=$(genDir)/$(in) " + + " -Iexternal/protobuf/src " + + " -I . " + + " $(in) " + + "&& $(location soong_zip) -jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)", + + srcs: [ + ":service-permission-protos", + ], + output_extension: "srcjar", +} + +java_library { + name: "service-permission-shared", + srcs: [":service-permission-shared-srcs"], + libs: [ + "framework-annotations-lib", + "framework-permission-s-shared", + ], + apex_available: [ + "com.android.permission", + "test_com.android.permission", + ], + installable: false, + min_sdk_version: "30", + sdk_version: "system_server_current", +} + java_sdk_library { name: "service-permission", defaults: ["framework-system-server-module-defaults"], @@ -31,10 +81,20 @@ java_sdk_library { ], srcs: [ ":service-permission-sources", + ":service-permission-javastream-protos", ], libs: [ "framework-permission", + "framework-permission-s.impl", + "framework-permission-s-shared", + ], + static_libs: [ + "modules-utils-os", + "service-permission-shared", ], + jarjar_rules: ":permission-jarjar-rules", + min_sdk_version: "30", + sdk_version: "system_server_current", apex_available: [ "com.android.permission", "test_com.android.permission", diff --git a/apex/permission/service/api/system-server-current.txt b/apex/permission/service/api/system-server-current.txt index c76cc3275737..b1869c2c731d 100644 --- a/apex/permission/service/api/system-server-current.txt +++ b/apex/permission/service/api/system-server-current.txt @@ -26,6 +26,14 @@ package com.android.permission.persistence { } +package com.android.role { + + public interface RoleManagerLocal { + method @NonNull public java.util.Map<java.lang.String,java.util.Set<java.lang.String>> getRolesAndHolders(int); + } + +} + package com.android.role.persistence { public interface RolesPersistence { diff --git a/services/core/java/com/android/server/role/compat/UserHandleCompat.java b/apex/permission/service/java/com/android/permission/compat/UserHandleCompat.java index 8f14c1fcfca7..7c711d301f00 100644 --- a/services/core/java/com/android/server/role/compat/UserHandleCompat.java +++ b/apex/permission/service/java/com/android/permission/compat/UserHandleCompat.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role.compat; +package com.android.permission.compat; import android.annotation.UserIdInt; import android.os.UserHandle; diff --git a/apex/permission/framework-s/java/android/app/role/RoleFrameworkPlaceholder.java b/apex/permission/service/java/com/android/permission/compat/package-info.java index fb7ba3eee2b4..c89cc8eabb92 100644 --- a/apex/permission/framework-s/java/android/app/role/RoleFrameworkPlaceholder.java +++ b/apex/permission/service/java/com/android/permission/compat/package-info.java @@ -14,13 +14,9 @@ * limitations under the License. */ -package android.app.role; - /** - * Temporary placeholder class inside framework-permission-s for compilation to pass. - * * @hide + * TODO(b/146466118) remove this javadoc tag */ -public class RoleFrameworkPlaceholder { - private RoleFrameworkPlaceholder() {} -} +@android.annotation.Hide +package com.android.permission.compat; diff --git a/services/core/java/com/android/server/role/util/ArrayUtils.java b/apex/permission/service/java/com/android/permission/util/ArrayUtils.java index 8b7c07b7473c..5d5cd78201bd 100644 --- a/services/core/java/com/android/server/role/util/ArrayUtils.java +++ b/apex/permission/service/java/com/android/permission/util/ArrayUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role.util; +package com.android.permission.util; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/role/util/BackgroundThread.java b/apex/permission/service/java/com/android/permission/util/BackgroundThread.java index 385595b950ab..7308eec98500 100644 --- a/services/core/java/com/android/server/role/util/BackgroundThread.java +++ b/apex/permission/service/java/com/android/permission/util/BackgroundThread.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role.util; +package com.android.permission.util; import android.annotation.NonNull; import android.os.Handler; diff --git a/services/core/java/com/android/server/role/util/CollectionUtils.java b/apex/permission/service/java/com/android/permission/util/CollectionUtils.java index f924fbc39177..ea4952404179 100644 --- a/services/core/java/com/android/server/role/util/CollectionUtils.java +++ b/apex/permission/service/java/com/android/permission/util/CollectionUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role.util; +package com.android.permission.util; import android.annotation.Nullable; diff --git a/services/core/java/com/android/server/role/util/ForegroundThread.java b/apex/permission/service/java/com/android/permission/util/ForegroundThread.java index 05da59e7c4ef..cd6f6057030b 100644 --- a/services/core/java/com/android/server/role/util/ForegroundThread.java +++ b/apex/permission/service/java/com/android/permission/util/ForegroundThread.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role.util; +package com.android.permission.util; import android.annotation.NonNull; import android.os.Handler; diff --git a/core/java/com/android/internal/infra/ThrottledRunnable.java b/apex/permission/service/java/com/android/permission/util/ThrottledRunnable.java index 9846fa9815ec..ba1c3939f73e 100644 --- a/core/java/com/android/internal/infra/ThrottledRunnable.java +++ b/apex/permission/service/java/com/android/permission/util/ThrottledRunnable.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.internal.infra; +package com.android.permission.util; import android.annotation.NonNull; import android.os.Handler; diff --git a/apex/permission/service/java/com/android/permission/util/package-info.java b/apex/permission/service/java/com/android/permission/util/package-info.java new file mode 100644 index 000000000000..18fada534424 --- /dev/null +++ b/apex/permission/service/java/com/android/permission/util/package-info.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @hide + * TODO(b/146466118) remove this javadoc tag + */ +@android.annotation.Hide +package com.android.permission.util; diff --git a/services/core/java/com/android/server/role/RoleManagerLocal.java b/apex/permission/service/java/com/android/role/RoleManagerLocal.java index f11d99d43061..e243e2e0db66 100644 --- a/services/core/java/com/android/server/role/RoleManagerLocal.java +++ b/apex/permission/service/java/com/android/role/RoleManagerLocal.java @@ -14,9 +14,10 @@ * limitations under the License. */ -package com.android.server.role; +package com.android.role; import android.annotation.NonNull; +import android.annotation.SystemApi; import android.annotation.UserIdInt; import java.util.Map; @@ -27,7 +28,7 @@ import java.util.Set; * * @hide */ -//@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) +@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) public interface RoleManagerLocal { /** * Get all roles and their holders. diff --git a/services/core/java/com/android/server/role/RoleService.java b/apex/permission/service/java/com/android/role/RoleService.java index 944ebf0f77c0..5f7eb22a42a7 100644 --- a/services/core/java/com/android/server/role/RoleService.java +++ b/apex/permission/service/java/com/android/role/RoleService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role; +package com.android.role; import android.Manifest; import android.annotation.AnyThread; @@ -51,15 +51,16 @@ import android.util.proto.ProtoOutputStream; import com.android.internal.annotations.GuardedBy; import com.android.internal.infra.AndroidFuture; -import com.android.internal.infra.ThrottledRunnable; import com.android.internal.util.Preconditions; import com.android.internal.util.dump.DualDumpOutputStream; +import com.android.permission.compat.UserHandleCompat; +import com.android.permission.util.ArrayUtils; +import com.android.permission.util.CollectionUtils; +import com.android.permission.util.ForegroundThread; +import com.android.permission.util.ThrottledRunnable; import com.android.server.LocalManagerRegistry; import com.android.server.SystemService; -import com.android.server.role.compat.UserHandleCompat; -import com.android.server.role.util.ArrayUtils; -import com.android.server.role.util.CollectionUtils; -import com.android.server.role.util.ForegroundThread; +import com.android.server.role.RoleServicePlatformHelper; import java.io.FileDescriptor; import java.io.FileOutputStream; @@ -701,7 +702,7 @@ public class RoleService extends SystemService implements RoleUserState.Callback final RoleUserState userState = mUserStates.valueAt(i); userState.dump(dumpOutputStream, "user_states", - RoleManagerServiceDumpProto.USER_STATES); + RoleServiceDumpProto.USER_STATES); } } diff --git a/services/core/java/com/android/server/role/RoleShellCommand.java b/apex/permission/service/java/com/android/role/RoleShellCommand.java index 6e0d81a605f3..03b7c76d2df5 100644 --- a/services/core/java/com/android/server/role/RoleShellCommand.java +++ b/apex/permission/service/java/com/android/role/RoleShellCommand.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role; +package com.android.role; import android.annotation.NonNull; import android.annotation.Nullable; @@ -23,7 +23,7 @@ import android.os.RemoteCallback; import android.os.RemoteException; import com.android.modules.utils.BasicShellCommandHandler; -import com.android.server.role.compat.UserHandleCompat; +import com.android.permission.compat.UserHandleCompat; import java.io.PrintWriter; import java.util.concurrent.CompletableFuture; diff --git a/services/core/java/com/android/server/role/RoleUserState.java b/apex/permission/service/java/com/android/role/RoleUserState.java index 52861c5e59e4..78d8d15bbe60 100644 --- a/services/core/java/com/android/server/role/RoleUserState.java +++ b/apex/permission/service/java/com/android/role/RoleUserState.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.role; +package com.android.role; import android.annotation.CheckResult; import android.annotation.NonNull; @@ -29,10 +29,11 @@ import android.util.Log; import com.android.internal.annotations.GuardedBy; import com.android.internal.util.dump.DualDumpOutputStream; +import com.android.permission.util.BackgroundThread; +import com.android.permission.util.CollectionUtils; import com.android.role.persistence.RolesPersistence; import com.android.role.persistence.RolesState; -import com.android.server.role.util.BackgroundThread; -import com.android.server.role.util.CollectionUtils; +import com.android.server.role.RoleServicePlatformHelper; import java.util.ArrayList; import java.util.List; diff --git a/services/core/java/com/android/server/role/TEST_MAPPING b/apex/permission/service/java/com/android/role/TEST_MAPPING index 0d7bc1476bd1..0d7bc1476bd1 100644 --- a/services/core/java/com/android/server/role/TEST_MAPPING +++ b/apex/permission/service/java/com/android/role/TEST_MAPPING diff --git a/apex/permission/service/java/com/android/role/package-info.java b/apex/permission/service/java/com/android/role/package-info.java new file mode 100644 index 000000000000..8b5b2516105f --- /dev/null +++ b/apex/permission/service/java/com/android/role/package-info.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @hide + * TODO(b/146466118) remove this javadoc tag + */ +@android.annotation.Hide +package com.android.role; diff --git a/core/proto/android/server/rolemanagerservice.proto b/apex/permission/service/proto/com/android/role/roleservice.proto index 146522ce9c8b..79c42299207c 100644 --- a/core/proto/android/server/rolemanagerservice.proto +++ b/apex/permission/service/proto/com/android/role/roleservice.proto @@ -16,13 +16,13 @@ syntax = "proto2"; -package com.android.server.role; +package com.android.role; option java_multiple_files = true; import "frameworks/base/core/proto/android/privacy.proto"; -message RoleManagerServiceDumpProto { +message RoleServiceDumpProto { option (.android.msg_privacy).dest = DEST_AUTOMATIC; // List of per-user states for all users. diff --git a/core/api/current.txt b/core/api/current.txt index 03ec4167c680..e0e2762cdd56 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -7907,24 +7907,6 @@ package android.app.people { } -package android.app.role { - - public final class RoleManager { - method @NonNull public android.content.Intent createRequestRoleIntent(@NonNull String); - method public boolean isRoleAvailable(@NonNull String); - method public boolean isRoleHeld(@NonNull String); - field public static final String ROLE_ASSISTANT = "android.app.role.ASSISTANT"; - field public static final String ROLE_BROWSER = "android.app.role.BROWSER"; - field public static final String ROLE_CALL_REDIRECTION = "android.app.role.CALL_REDIRECTION"; - field public static final String ROLE_CALL_SCREENING = "android.app.role.CALL_SCREENING"; - field public static final String ROLE_DIALER = "android.app.role.DIALER"; - field public static final String ROLE_EMERGENCY = "android.app.role.EMERGENCY"; - field public static final String ROLE_HOME = "android.app.role.HOME"; - field public static final String ROLE_SMS = "android.app.role.SMS"; - } - -} - package android.app.slice { public final class Slice implements android.os.Parcelable { diff --git a/core/api/module-lib-current.txt b/core/api/module-lib-current.txt index 5d61aca0a123..4acbf74aafe4 100644 --- a/core/api/module-lib-current.txt +++ b/core/api/module-lib-current.txt @@ -32,14 +32,6 @@ package android.app { } -package android.app.role { - - public final class RoleManager { - method @Nullable public String getSmsRoleHolder(int); - } - -} - package android.content { public abstract class Context { diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 802e4ab5a717..96069f93c2fe 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1357,42 +1357,6 @@ package android.app.prediction { } -package android.app.role { - - public interface OnRoleHoldersChangedListener { - 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(); - 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"; - } - - 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<java.lang.Boolean>); - method @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<java.lang.Boolean>); - method @NonNull @RequiresPermission("com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER") public java.util.List<java.lang.String> getHeldRolesFromController(@NonNull String); - method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHolders(@NonNull String); - method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public java.util.List<java.lang.String> getRoleHoldersAsUser(@NonNull String, @NonNull android.os.UserHandle); - 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<java.lang.Boolean>); - 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<java.lang.String>); - field public static final int MANAGE_HOLDERS_FLAG_DONT_KILL_APP = 1; // 0x1 - } - -} - package android.app.search { public final class Query implements android.os.Parcelable { diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 2efa87e4d793..d6abbeca4480 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -544,16 +544,6 @@ package android.app.prediction { } -package android.app.role { - - public final class RoleManager { - method @Nullable public String getSmsRoleHolder(int); - 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<java.lang.Boolean>); - method @RequiresPermission(android.Manifest.permission.MANAGE_ROLE_HOLDERS) public void isRoleVisible(@NonNull String, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); - } - -} - package android.app.usage { public class NetworkStatsManager { diff --git a/core/api/test-lint-baseline.txt b/core/api/test-lint-baseline.txt index 216d34069083..3c67e44ff41f 100644 --- a/core/api/test-lint-baseline.txt +++ b/core/api/test-lint-baseline.txt @@ -2843,10 +2843,6 @@ RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#s SamShouldBeLast: android.app.ActivityManager#addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int): -SamShouldBeLast: android.app.role.RoleManager#addOnRoleHoldersChangedListenerAsUser(java.util.concurrent.Executor, android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle): - -SamShouldBeLast: android.app.role.RoleManager#removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle): - SamShouldBeLast: android.database.sqlite.SQLiteDebug#dump(android.util.Printer, String[]): SamShouldBeLast: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]): @@ -2973,18 +2969,6 @@ UserHandle: android.app.ActivityManager#switchUser(android.os.UserHandle): UserHandle: android.app.admin.DevicePolicyManager#getOwnerInstalledCaCerts(android.os.UserHandle): -UserHandle: android.app.role.RoleManager#addOnRoleHoldersChangedListenerAsUser(java.util.concurrent.Executor, android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle): - -UserHandle: android.app.role.RoleManager#addRoleHolderAsUser(String, String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>): - -UserHandle: android.app.role.RoleManager#clearRoleHoldersAsUser(String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>): - -UserHandle: android.app.role.RoleManager#getRoleHoldersAsUser(String, android.os.UserHandle): - -UserHandle: android.app.role.RoleManager#removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle): - -UserHandle: android.app.role.RoleManager#removeRoleHolderAsUser(String, String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>): - UserHandle: android.app.usage.StorageStatsManager#queryCratesForPackage(java.util.UUID, String, android.os.UserHandle): UserHandle: android.app.usage.StorageStatsManager#queryCratesForUser(java.util.UUID, android.os.UserHandle): diff --git a/core/java/android/app/role/OWNERS b/core/java/android/app/role/OWNERS deleted file mode 100644 index b807636658eb..000000000000 --- a/core/java/android/app/role/OWNERS +++ /dev/null @@ -1,4 +0,0 @@ -# Bug component: 137825 - -zhanghai@google.com -moltmann@google.com diff --git a/core/proto/android/os/incident.proto b/core/proto/android/os/incident.proto index 944edb0ff750..48094198c2e9 100644 --- a/core/proto/android/os/incident.proto +++ b/core/proto/android/os/incident.proto @@ -41,7 +41,7 @@ import "frameworks/base/core/proto/android/server/jobscheduler.proto"; import "frameworks/base/core/proto/android/server/location/context_hub.proto"; import "frameworks/base/core/proto/android/server/powermanagerservice.proto"; import "frameworks/base/core/proto/android/server/powerstatsservice.proto"; -import "frameworks/base/core/proto/android/server/rolemanagerservice.proto"; +import "frameworks/base/apex/permission/service/proto/com/android/role/roleservice.proto"; import "frameworks/base/core/proto/android/server/windowmanagerservice.proto"; import "frameworks/base/core/proto/android/service/appwidget.proto"; import "frameworks/base/core/proto/android/service/battery.proto"; @@ -362,7 +362,7 @@ message IncidentProto { (section).userdebug_and_eng_only = true ]; - optional com.android.server.role.RoleManagerServiceDumpProto role = 3024 [ + optional com.android.role.RoleServiceDumpProto role = 3024 [ (section).type = SECTION_DUMPSYS, (section).args = "role --proto" ]; diff --git a/services/api/current.txt b/services/api/current.txt index 17ca369c62ab..7e8f7a20bd64 100644 --- a/services/api/current.txt +++ b/services/api/current.txt @@ -26,6 +26,14 @@ package com.android.permission.persistence { } +package com.android.role { + + public interface RoleManagerLocal { + method @NonNull public java.util.Map<java.lang.String,java.util.Set<java.lang.String>> getRolesAndHolders(int); + } + +} + package com.android.role.persistence { public interface RolesPersistence { @@ -80,6 +88,15 @@ package com.android.server { } +package com.android.server.role { + + public interface RoleServicePlatformHelper { + method @NonNull public String computePackageStateHash(int); + method @NonNull public java.util.Map<java.lang.String,java.util.Set<java.lang.String>> getLegacyRoleState(int); + } + +} + package com.android.server.wifi { public class SupplicantManager { diff --git a/services/core/java/com/android/server/role/RoleServicePlatformHelper.java b/services/core/java/com/android/server/role/RoleServicePlatformHelper.java index d804d130fc6b..8f4cc023dc27 100644 --- a/services/core/java/com/android/server/role/RoleServicePlatformHelper.java +++ b/services/core/java/com/android/server/role/RoleServicePlatformHelper.java @@ -17,6 +17,7 @@ package com.android.server.role; import android.annotation.NonNull; +import android.annotation.SystemApi; import android.annotation.UserIdInt; import java.util.Map; @@ -27,7 +28,7 @@ import java.util.Set; * * @hide */ -//@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) +@SystemApi(client = SystemApi.Client.SYSTEM_SERVER) public interface RoleServicePlatformHelper { /** * Get the legacy role state stored in the platform. diff --git a/services/core/java/com/android/server/role/package-info.java b/services/core/java/com/android/server/role/package-info.java new file mode 100644 index 000000000000..c0fede9c67b1 --- /dev/null +++ b/services/core/java/com/android/server/role/package-info.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @hide + * TODO(b/146466118) remove this javadoc tag + */ +@android.annotation.Hide +package com.android.server.role; diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java index 14855aee2991..0cc2a6c52b1d 100644 --- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java @@ -154,6 +154,7 @@ import com.android.internal.os.ProcessCpuTracker; import com.android.internal.os.StoragedUidIoStatsReader; import com.android.internal.util.CollectionUtils; import com.android.internal.util.FrameworkStatsLog; +import com.android.role.RoleManagerLocal; import com.android.server.BatteryService; import com.android.server.BinderCallsStatsService; import com.android.server.LocalManagerRegistry; @@ -162,7 +163,6 @@ import com.android.server.SystemService; import com.android.server.SystemServiceManager; import com.android.server.am.MemoryStatUtil.MemoryStat; import com.android.server.notification.NotificationManagerService; -import com.android.server.role.RoleManagerLocal; import com.android.server.stats.pull.IonMemoryUtil.IonAllocations; import com.android.server.stats.pull.ProcfsMemoryUtil.MemorySnapshot; import com.android.server.stats.pull.netstats.NetworkStatsExt; diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 7839274904ad..2e0c16638685 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -353,7 +353,7 @@ public final class SystemServer implements Dumpable { "com.android.server.ConnectivityServiceInitializer"; private static final String IP_CONNECTIVITY_METRICS_CLASS = "com.android.server.connectivity.IpConnectivityMetrics"; - private static final String ROLE_SERVICE_CLASS = "com.android.server.role.RoleService"; + private static final String ROLE_SERVICE_CLASS = "com.android.role.RoleService"; private static final String TETHERING_CONNECTOR_CLASS = "android.net.ITetheringConnector"; |