From 61afdc1fd7f369479b720f6b33e5077d6b6ba955 Mon Sep 17 00:00:00 2001 From: Danesh M Date: Tue, 16 Feb 2016 18:01:06 -0800 Subject: [PATCH] PerformanceManager : Ensure we clear calling identity When going from perfmanager -> powermanager we need to clear the calling identity otherwise you get : Bad call: specified package android under uid 10031 but it is really 1000 CYNGNOS-786 Change-Id: Iacd310f56d6538b0f7a4779f89b4451f6a203c5b --- .../platform/internal/PerformanceManagerService.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java b/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java index 2d84e28..d4e8403 100644 --- a/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java +++ b/cm/lib/main/java/org/cyanogenmod/platform/internal/PerformanceManagerService.java @@ -189,11 +189,18 @@ public class PerformanceManagerService extends SystemService { if (profile == PerformanceManager.PROFILE_POWER_SAVE) { // Handle the case where toggle power saver mode // failed - if (!mPm.setPowerSaveMode(true)) { - return false; + long token = Binder.clearCallingIdentity(); + try { + if (!mPm.setPowerSaveMode(true)) { + return false; + } + } finally { + Binder.restoreCallingIdentity(token); } } else if (mCurrentProfile == PerformanceManager.PROFILE_POWER_SAVE) { + long token = Binder.clearCallingIdentity(); mPm.setPowerSaveMode(false); + Binder.restoreCallingIdentity(token); } }