summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Christopher Morin <cmtm@google.com> 2018-07-13 21:14:07 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-07-13 21:14:07 +0000
commita8e2e60576e8c8f063e5228b7a42d13491eb1c54 (patch)
treedaf6e08f145d9c01500165108271e75c1fb01791
parent0a93f761d263e0e5672dc328cc0ec881f253d74f (diff)
parent55297003c1223dbaa5e13034bf3eaef629e22e33 (diff)
Merge "Drop binder calling identity before updating device stats"
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java25
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;
}