Merge "ActivityManagerService: UID frozen API should check permissions" into udc-dev
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 415c859..32c9a09 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -182,6 +182,7 @@
import android.annotation.Nullable;
import android.annotation.PermissionMethod;
import android.annotation.PermissionName;
+import android.annotation.RequiresPermission;
import android.annotation.UserIdInt;
import android.app.Activity;
import android.app.ActivityClient;
@@ -7925,10 +7926,15 @@
*
* @param callback remote callback object to be registered
*/
+ @RequiresPermission(Manifest.permission.PACKAGE_USAGE_STATS)
+ @Override
public void registerUidFrozenStateChangedCallback(
@NonNull IUidFrozenStateChangedCallback callback) {
+ enforceCallingPermission(android.Manifest.permission.PACKAGE_USAGE_STATS,
+ "registerUidFrozenStateChangedCallback()");
+ Preconditions.checkNotNull(callback, "callback cannot be null");
synchronized (mUidFrozenStateChangedCallbackList) {
- boolean registered = mUidFrozenStateChangedCallbackList.register(callback);
+ final boolean registered = mUidFrozenStateChangedCallbackList.register(callback);
if (!registered) {
Slog.w(TAG, "Failed to register with RemoteCallbackList!");
}
@@ -7940,8 +7946,13 @@
*
* @param callback remote callback object to be unregistered
*/
+ @RequiresPermission(Manifest.permission.PACKAGE_USAGE_STATS)
+ @Override
public void unregisterUidFrozenStateChangedCallback(
@NonNull IUidFrozenStateChangedCallback callback) {
+ enforceCallingPermission(android.Manifest.permission.PACKAGE_USAGE_STATS,
+ "unregisterUidFrozenStateChangedCallback()");
+ Preconditions.checkNotNull(callback, "callback cannot be null");
synchronized (mUidFrozenStateChangedCallbackList) {
mUidFrozenStateChangedCallbackList.unregister(callback);
}