Merge "Fix issue #26434415: APR: SecurityException in android.process.media"
diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java
index 58a0356..9bd79c9 100644
--- a/services/core/java/com/android/server/DeviceIdleController.java
+++ b/services/core/java/com/android/server/DeviceIdleController.java
@@ -936,13 +936,23 @@
@Override public void addPowerSaveWhitelistApp(String name) {
getContext().enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER,
null);
- addPowerSaveWhitelistAppInternal(name);
+ long ident = Binder.clearCallingIdentity();
+ try {
+ addPowerSaveWhitelistAppInternal(name);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
}
@Override public void removePowerSaveWhitelistApp(String name) {
getContext().enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER,
null);
- removePowerSaveWhitelistAppInternal(name);
+ long ident = Binder.clearCallingIdentity();
+ try {
+ removePowerSaveWhitelistAppInternal(name);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
}
@Override public String[] getSystemPowerWhitelistExceptIdle() {
@@ -1003,19 +1013,34 @@
@Override public void exitIdle(String reason) {
getContext().enforceCallingOrSelfPermission(Manifest.permission.DEVICE_POWER,
null);
- exitIdleInternal(reason);
+ long ident = Binder.clearCallingIdentity();
+ try {
+ exitIdleInternal(reason);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
}
@Override public void downloadServiceActive(IBinder token) {
getContext().enforceCallingOrSelfPermission(
"android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS", null);
- DeviceIdleController.this.downloadServiceActive(token);
+ long ident = Binder.clearCallingIdentity();
+ try {
+ DeviceIdleController.this.downloadServiceActive(token);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
}
@Override public void downloadServiceInactive() {
getContext().enforceCallingOrSelfPermission(
"android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS", null);
- DeviceIdleController.this.downloadServiceInactive();
+ long ident = Binder.clearCallingIdentity();
+ try {
+ DeviceIdleController.this.downloadServiceInactive();
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
}
@Override public boolean registerMaintenanceActivityListener(