diff options
| author | 2018-07-13 21:14:07 +0000 | |
|---|---|---|
| committer | 2018-07-13 21:14:07 +0000 | |
| commit | a8e2e60576e8c8f063e5228b7a42d13491eb1c54 (patch) | |
| tree | daf6e08f145d9c01500165108271e75c1fb01791 | |
| parent | 0a93f761d263e0e5672dc328cc0ec881f253d74f (diff) | |
| parent | 55297003c1223dbaa5e13034bf3eaef629e22e33 (diff) | |
Merge "Drop binder calling identity before updating device stats"
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index b873d3930e13..48f4b22a0eac 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -20642,16 +20642,23 @@ public class ActivityManagerService extends IActivityManager.Stub // Has the UID or resumed package name changed? if (uid != mCurResumedUid || (pkg != mCurResumedPackage && (pkg == null || !pkg.equals(mCurResumedPackage)))) { - if (mCurResumedPackage != null) { - mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_TOP_FINISH, - mCurResumedPackage, mCurResumedUid); - } - mCurResumedPackage = pkg; - mCurResumedUid = uid; - if (mCurResumedPackage != null) { - mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_TOP_START, - mCurResumedPackage, mCurResumedUid); + + final long identity = Binder.clearCallingIdentity(); + try { + if (mCurResumedPackage != null) { + mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_TOP_FINISH, + mCurResumedPackage, mCurResumedUid); + } + mCurResumedPackage = pkg; + mCurResumedUid = uid; + if (mCurResumedPackage != null) { + mBatteryStatsService.noteEvent(BatteryStats.HistoryItem.EVENT_TOP_START, + mCurResumedPackage, mCurResumedUid); + } + } finally { + Binder.restoreCallingIdentity(identity); } + } return act; } |