diff options
| -rw-r--r-- | core/api/system-current.txt | 3 | ||||
| -rw-r--r-- | core/java/android/app/admin/DevicePolicyManager.java | 35 |
2 files changed, 27 insertions, 11 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt index b73f1993ee4c..ced16eb464b2 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1306,6 +1306,7 @@ package android.app.admin { public class DevicePolicyManager { method @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public int checkProvisioningPrecondition(@NonNull String, @NonNull String); + method @FlaggedApi("android.app.admin.flags.security_log_v2_enabled") @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING) public void clearAuditLogEventCallback(); method @Nullable @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public android.os.UserHandle createAndProvisionManagedProfile(@NonNull android.app.admin.ManagedProfileProvisioningParams) throws android.app.admin.ProvisioningException; method @Nullable public android.content.Intent createProvisioningIntentFromNfcIntent(@NonNull android.content.Intent); method @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public void finalizeWorkProfileProvisioning(@NonNull android.os.UserHandle, @Nullable android.accounts.Account); @@ -1342,7 +1343,7 @@ package android.app.admin { method @Deprecated @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_ADMINS) public boolean setActiveProfileOwner(@NonNull android.content.ComponentName, String) throws java.lang.IllegalArgumentException; method @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS) public void setApplicationExemptions(@NonNull String, @NonNull java.util.Set<java.lang.Integer>) throws android.content.pm.PackageManager.NameNotFoundException; method @FlaggedApi("android.app.admin.flags.security_log_v2_enabled") @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING) public void setAuditLogEnabled(boolean); - method @FlaggedApi("android.app.admin.flags.security_log_v2_enabled") @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING) public void setAuditLogEventCallback(@NonNull java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.util.List<android.app.admin.SecurityLog.SecurityEvent>>); + method @FlaggedApi("android.app.admin.flags.security_log_v2_enabled") @RequiresPermission(android.Manifest.permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING) public void setAuditLogEventCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.util.List<android.app.admin.SecurityLog.SecurityEvent>>); method @RequiresPermission(android.Manifest.permission.MANAGE_USERS) public void setDeviceProvisioningConfigApplied(); method @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public void setDpcDownloaded(boolean); method @FlaggedApi("android.app.admin.flags.device_policy_size_tracking_enabled") @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public void setMaxPolicyStorageLimit(int); diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index b25ebf69d14c..de22072d5941 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -14090,9 +14090,7 @@ public class DevicePolicyManager { try { return mService.isAuditLogEnabled(mContext.getPackageName()); } catch (RemoteException re) { - re.rethrowFromSystemServer(); - // unreachable - return false; + throw re.rethrowFromSystemServer(); } } @@ -14102,8 +14100,8 @@ public class DevicePolicyManager { * is enforced by the caller. Disabling the policy clears the callback. Each time a new callback * is set, it will first be invoked with all the audit log events available at the time. * - * @param callback callback to invoke when new audit log events become available or {@code null} - * to clear the callback. + * @param callback The callback to invoke when new audit log events become available. + * @param executor The executor through which the callback should be invoked. * @hide */ @SystemApi @@ -14111,11 +14109,10 @@ public class DevicePolicyManager { @RequiresPermission(permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING) public void setAuditLogEventCallback( @NonNull @CallbackExecutor Executor executor, - @Nullable Consumer<List<SecurityEvent>> callback) { + @NonNull Consumer<List<SecurityEvent>> callback) { throwIfParentInstance("setAuditLogEventCallback"); - final IAuditLogEventsCallback wrappedCallback = callback == null - ? null - : new IAuditLogEventsCallback.Stub() { + final IAuditLogEventsCallback wrappedCallback = + new IAuditLogEventsCallback.Stub() { @Override public void onNewAuditLogEvents(List<SecurityEvent> events) { executor.execute(() -> callback.accept(events)); @@ -14124,7 +14121,25 @@ public class DevicePolicyManager { try { mService.setAuditLogEventsCallback(mContext.getPackageName(), wrappedCallback); } catch (RemoteException re) { - re.rethrowFromSystemServer(); + throw re.rethrowFromSystemServer(); + } + } + + /** + * Clears audit log event callback. If a callback was set previously, it may still get invoked + * after this call returns if it was already scheduled. + * + * @hide + */ + @SystemApi + @FlaggedApi(FLAG_SECURITY_LOG_V2_ENABLED) + @RequiresPermission(permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING) + public void clearAuditLogEventCallback() { + throwIfParentInstance("clearAuditLogEventCallback"); + try { + mService.setAuditLogEventsCallback(mContext.getPackageName(), null); + } catch (RemoteException re) { + throw re.rethrowFromSystemServer(); } } |