Loading Android.bp +3 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,8 @@ java_defaults { "core/java/android/app/backup/IRestoreObserver.aidl", "core/java/android/app/backup/IRestoreSession.aidl", "core/java/android/app/backup/ISelectBackupTransportCallback.aidl", "core/java/android/app/role/IRoleManager.aidl", "core/java/android/app/role/IRoleManagerCallback.aidl", "core/java/android/app/slice/ISliceManager.aidl", "core/java/android/app/slice/ISliceListener.aidl", "core/java/android/app/timedetector/ITimeDetectorService.aidl", Loading Loading @@ -259,6 +261,7 @@ java_defaults { "core/java/android/os/storage/IStorageEventListener.aidl", "core/java/android/os/storage/IStorageShutdownObserver.aidl", "core/java/android/os/storage/IObbActionListener.aidl", "core/java/android/rolecontrollerservice/IRoleControllerService.aidl", ":keystore_aidl", "core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl", "core/java/android/service/autofill/IAutoFillService.aidl", Loading api/current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -7287,6 +7287,18 @@ package android.app.job { } package android.app.role { public final class RoleManager { method public android.content.Intent createRequestRoleIntent(java.lang.String); method public boolean isRoleAvailable(java.lang.String); method public boolean isRoleHeld(java.lang.String); field public static final java.lang.String ROLE_DIALER = "android.app.role.DIALER"; field public static final java.lang.String ROLE_SMS = "android.app.role.SMS"; } } package android.app.slice { public final class Slice implements android.os.Parcelable { Loading Loading @@ -9631,6 +9643,7 @@ package android.content { field public static final java.lang.String PRINT_SERVICE = "print"; field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1 field public static final java.lang.String RESTRICTIONS_SERVICE = "restrictions"; field public static final java.lang.String ROLE_SERVICE = "role"; field public static final java.lang.String SEARCH_SERVICE = "search"; field public static final java.lang.String SENSOR_SERVICE = "sensor"; field public static final java.lang.String SHORTCUT_SERVICE = "shortcut"; api/system-current.txt +34 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ package android { field public static final java.lang.String MANAGE_CA_CERTIFICATES = "android.permission.MANAGE_CA_CERTIFICATES"; field public static final java.lang.String MANAGE_DEVICE_ADMINS = "android.permission.MANAGE_DEVICE_ADMINS"; field public static final java.lang.String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS"; field public static final java.lang.String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS"; field public static final java.lang.String MANAGE_SOUND_TRIGGER = "android.permission.MANAGE_SOUND_TRIGGER"; field public static final java.lang.String MANAGE_SUBSCRIPTION_PLANS = "android.permission.MANAGE_SUBSCRIPTION_PLANS"; field public static final java.lang.String MANAGE_USB = "android.permission.MANAGE_USB"; Loading Loading @@ -293,6 +294,8 @@ package android.app { public class AppOpsManager { method public static java.lang.String[] getOpStrs(); method public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, java.lang.String, int[]); method public static java.lang.String opToPermission(java.lang.String); method public void resetUidMode(java.lang.String, int, boolean); method public void setMode(java.lang.String, int, java.lang.String, int); method public void setUidMode(java.lang.String, int, int); field public static final java.lang.String OPSTR_ACCEPT_HANDOVER = "android:accept_handover"; Loading Loading @@ -802,6 +805,23 @@ package android.app.job { } package android.app.role { public final class RoleManager { method public void addRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public void clearRoleHoldersAsUser(java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public java.util.Set<java.lang.String> getRoleHoldersAsUser(java.lang.String, android.os.UserHandle); method public void removeRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); field public static final java.lang.String EXTRA_REQUEST_ROLE_NAME = "android.app.role.extra.REQUEST_ROLE_NAME"; } public abstract interface RoleManagerCallback { method public abstract void onFailure(); method public abstract void onSuccess(); } } package android.app.usage { public final class CacheQuotaHint implements android.os.Parcelable { Loading Loading @@ -1148,6 +1168,7 @@ package android.content.pm { method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(android.content.Intent, int, android.os.UserHandle); method public abstract void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback); method public abstract void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener); method public void replacePreferredActivity(android.content.IntentFilter, int, java.util.List<android.content.ComponentName>, android.content.ComponentName); method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int); method public void setHarmfulAppWarning(java.lang.String, java.lang.CharSequence); Loading Loading @@ -4511,6 +4532,19 @@ package android.provider { } package android.rolecontrollerservice { public abstract class RoleControllerService extends android.app.Service { ctor public RoleControllerService(); method public abstract void onAddRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback); method public final android.os.IBinder onBind(android.content.Intent); method public abstract void onClearRoleHolders(java.lang.String, android.app.role.RoleManagerCallback); method public abstract void onRemoveRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback); field public static final java.lang.String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService"; } } package android.security.keystore { public abstract class AttestationUtils { Loading core/java/android/app/AppOpsManager.java +34 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app; import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; Loading Loading @@ -1536,6 +1537,19 @@ public class AppOpsManager { return sOpPerms[op]; } /** * Retrieve the permission associated with an operation, or null if there is not one. * * @param op The operation name. * * @hide */ @Nullable @SystemApi public static String opToPermission(@NonNull String op) { return opToPermission(strOpToOp(op)); } /** * Retrieve the user restriction associated with an operation, or null if there is not one. * @hide Loading Loading @@ -1982,6 +1996,26 @@ public class AppOpsManager { } } /** * Resets given app op in its default mode for app ops in the UID. * This applies to all apps currently in the UID or installed in this UID in the future. * * @param appOp The app op. * @param uid The UID for which to set the app. * * @hide */ @RequiresPermission(android.Manifest.permission.MANAGE_APP_OPS_MODES) @SystemApi public void resetUidMode(String appOp, int uid, boolean force) { int code = strOpToOp(appOp); if (!(opAllowsReset(code) || force)) { return; } int mode = opToDefaultMode(code); setUidMode(code, uid, mode); } /** @hide */ public void setUserRestriction(int code, boolean restricted, IBinder token) { setUserRestriction(code, restricted, token, /*exceptionPackages*/null); Loading core/java/android/app/role/IRoleManager.aidl 0 → 100644 +39 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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. */ package android.app.role; import android.app.role.IRoleManagerCallback; /** * @hide */ interface IRoleManager { boolean isRoleAvailable(in String roleName); boolean isRoleHeld(in String roleName, in String packageName); List<String> getRoleHoldersAsUser(in String roleName, int userId); void addRoleHolderAsUser(in String roleName, in String packageName, int userId, in IRoleManagerCallback callback); void removeRoleHolderAsUser(in String roleName, in String packageName, int userId, in IRoleManagerCallback callback); void clearRoleHoldersAsUser(in String roleName, int userId, in IRoleManagerCallback callback); } Loading
Android.bp +3 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,8 @@ java_defaults { "core/java/android/app/backup/IRestoreObserver.aidl", "core/java/android/app/backup/IRestoreSession.aidl", "core/java/android/app/backup/ISelectBackupTransportCallback.aidl", "core/java/android/app/role/IRoleManager.aidl", "core/java/android/app/role/IRoleManagerCallback.aidl", "core/java/android/app/slice/ISliceManager.aidl", "core/java/android/app/slice/ISliceListener.aidl", "core/java/android/app/timedetector/ITimeDetectorService.aidl", Loading Loading @@ -259,6 +261,7 @@ java_defaults { "core/java/android/os/storage/IStorageEventListener.aidl", "core/java/android/os/storage/IStorageShutdownObserver.aidl", "core/java/android/os/storage/IObbActionListener.aidl", "core/java/android/rolecontrollerservice/IRoleControllerService.aidl", ":keystore_aidl", "core/java/android/security/keymaster/IKeyAttestationApplicationIdProvider.aidl", "core/java/android/service/autofill/IAutoFillService.aidl", Loading
api/current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -7287,6 +7287,18 @@ package android.app.job { } package android.app.role { public final class RoleManager { method public android.content.Intent createRequestRoleIntent(java.lang.String); method public boolean isRoleAvailable(java.lang.String); method public boolean isRoleHeld(java.lang.String); field public static final java.lang.String ROLE_DIALER = "android.app.role.DIALER"; field public static final java.lang.String ROLE_SMS = "android.app.role.SMS"; } } package android.app.slice { public final class Slice implements android.os.Parcelable { Loading Loading @@ -9631,6 +9643,7 @@ package android.content { field public static final java.lang.String PRINT_SERVICE = "print"; field public static final int RECEIVER_VISIBLE_TO_INSTANT_APPS = 1; // 0x1 field public static final java.lang.String RESTRICTIONS_SERVICE = "restrictions"; field public static final java.lang.String ROLE_SERVICE = "role"; field public static final java.lang.String SEARCH_SERVICE = "search"; field public static final java.lang.String SENSOR_SERVICE = "sensor"; field public static final java.lang.String SHORTCUT_SERVICE = "shortcut";
api/system-current.txt +34 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ package android { field public static final java.lang.String MANAGE_CA_CERTIFICATES = "android.permission.MANAGE_CA_CERTIFICATES"; field public static final java.lang.String MANAGE_DEVICE_ADMINS = "android.permission.MANAGE_DEVICE_ADMINS"; field public static final java.lang.String MANAGE_IPSEC_TUNNELS = "android.permission.MANAGE_IPSEC_TUNNELS"; field public static final java.lang.String MANAGE_ROLE_HOLDERS = "android.permission.MANAGE_ROLE_HOLDERS"; field public static final java.lang.String MANAGE_SOUND_TRIGGER = "android.permission.MANAGE_SOUND_TRIGGER"; field public static final java.lang.String MANAGE_SUBSCRIPTION_PLANS = "android.permission.MANAGE_SUBSCRIPTION_PLANS"; field public static final java.lang.String MANAGE_USB = "android.permission.MANAGE_USB"; Loading Loading @@ -293,6 +294,8 @@ package android.app { public class AppOpsManager { method public static java.lang.String[] getOpStrs(); method public java.util.List<android.app.AppOpsManager.PackageOps> getOpsForPackage(int, java.lang.String, int[]); method public static java.lang.String opToPermission(java.lang.String); method public void resetUidMode(java.lang.String, int, boolean); method public void setMode(java.lang.String, int, java.lang.String, int); method public void setUidMode(java.lang.String, int, int); field public static final java.lang.String OPSTR_ACCEPT_HANDOVER = "android:accept_handover"; Loading Loading @@ -802,6 +805,23 @@ package android.app.job { } package android.app.role { public final class RoleManager { method public void addRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public void clearRoleHoldersAsUser(java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); method public java.util.Set<java.lang.String> getRoleHoldersAsUser(java.lang.String, android.os.UserHandle); method public void removeRoleHolderAsUser(java.lang.String, java.lang.String, android.os.UserHandle, java.util.concurrent.Executor, android.app.role.RoleManagerCallback); field public static final java.lang.String EXTRA_REQUEST_ROLE_NAME = "android.app.role.extra.REQUEST_ROLE_NAME"; } public abstract interface RoleManagerCallback { method public abstract void onFailure(); method public abstract void onSuccess(); } } package android.app.usage { public final class CacheQuotaHint implements android.os.Parcelable { Loading Loading @@ -1148,6 +1168,7 @@ package android.content.pm { method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceiversAsUser(android.content.Intent, int, android.os.UserHandle); method public abstract void registerDexModule(java.lang.String, android.content.pm.PackageManager.DexModuleRegisterCallback); method public abstract void removeOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener); method public void replacePreferredActivity(android.content.IntentFilter, int, java.util.List<android.content.ComponentName>, android.content.ComponentName); method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract boolean setDefaultBrowserPackageNameAsUser(java.lang.String, int); method public void setHarmfulAppWarning(java.lang.String, java.lang.CharSequence); Loading Loading @@ -4511,6 +4532,19 @@ package android.provider { } package android.rolecontrollerservice { public abstract class RoleControllerService extends android.app.Service { ctor public RoleControllerService(); method public abstract void onAddRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback); method public final android.os.IBinder onBind(android.content.Intent); method public abstract void onClearRoleHolders(java.lang.String, android.app.role.RoleManagerCallback); method public abstract void onRemoveRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback); field public static final java.lang.String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService"; } } package android.security.keystore { public abstract class AttestationUtils { Loading
core/java/android/app/AppOpsManager.java +34 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app; import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; Loading Loading @@ -1536,6 +1537,19 @@ public class AppOpsManager { return sOpPerms[op]; } /** * Retrieve the permission associated with an operation, or null if there is not one. * * @param op The operation name. * * @hide */ @Nullable @SystemApi public static String opToPermission(@NonNull String op) { return opToPermission(strOpToOp(op)); } /** * Retrieve the user restriction associated with an operation, or null if there is not one. * @hide Loading Loading @@ -1982,6 +1996,26 @@ public class AppOpsManager { } } /** * Resets given app op in its default mode for app ops in the UID. * This applies to all apps currently in the UID or installed in this UID in the future. * * @param appOp The app op. * @param uid The UID for which to set the app. * * @hide */ @RequiresPermission(android.Manifest.permission.MANAGE_APP_OPS_MODES) @SystemApi public void resetUidMode(String appOp, int uid, boolean force) { int code = strOpToOp(appOp); if (!(opAllowsReset(code) || force)) { return; } int mode = opToDefaultMode(code); setUidMode(code, uid, mode); } /** @hide */ public void setUserRestriction(int code, boolean restricted, IBinder token) { setUserRestriction(code, restricted, token, /*exceptionPackages*/null); Loading
core/java/android/app/role/IRoleManager.aidl 0 → 100644 +39 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 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. */ package android.app.role; import android.app.role.IRoleManagerCallback; /** * @hide */ interface IRoleManager { boolean isRoleAvailable(in String roleName); boolean isRoleHeld(in String roleName, in String packageName); List<String> getRoleHoldersAsUser(in String roleName, int userId); void addRoleHolderAsUser(in String roleName, in String packageName, int userId, in IRoleManagerCallback callback); void removeRoleHolderAsUser(in String roleName, in String packageName, int userId, in IRoleManagerCallback callback); void clearRoleHoldersAsUser(in String roleName, int userId, in IRoleManagerCallback callback); }