summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/app/IBatteryStats.aidl6
-rwxr-xr-xservices/core/java/com/android/server/am/ActivityManagerService.java8
-rw-r--r--services/core/java/com/android/server/am/BatteryStatsService.java69
3 files changed, 41 insertions, 42 deletions
diff --git a/core/java/com/android/internal/app/IBatteryStats.aidl b/core/java/com/android/internal/app/IBatteryStats.aidl
index 40965f0cf69e..55b3eccf0846 100644
--- a/core/java/com/android/internal/app/IBatteryStats.aidl
+++ b/core/java/com/android/internal/app/IBatteryStats.aidl
@@ -48,14 +48,8 @@ interface IBatteryStats {
// Returns -1 if nothing could be computed.
long computeChargeTimeRemaining();
- void addIsolatedUid(int isolatedUid, int appUid);
- void removeIsolatedUid(int isolatedUid, int appUid);
-
void noteEvent(int code, String name, int uid);
- void noteProcessStart(String name, int uid);
- void noteProcessState(String name, int uid, int state);
- void noteProcessFinish(String name, int uid);
void noteSyncStart(String name, int uid);
void noteSyncFinish(String name, int uid);
void noteJobStart(String name, int uid);
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 4d2fd4c725ec..74841ba6016d 100755
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -9542,7 +9542,13 @@ public final class ActivityManagerService extends ActivityManagerNative
public void removeContentProviderExternal(String name, IBinder token) {
enforceCallingPermission(android.Manifest.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY,
"Do not have permission in call removeContentProviderExternal()");
- removeContentProviderExternalUnchecked(name, token, UserHandle.getCallingUserId());
+ int userId = UserHandle.getCallingUserId();
+ long ident = Binder.clearCallingIdentity();
+ try {
+ removeContentProviderExternalUnchecked(name, token, userId);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
}
private void removeContentProviderExternalUnchecked(String name, IBinder token, int userId) {
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index 786196ff05a7..a0219196edbc 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -123,6 +123,40 @@ public final class BatteryStatsService extends IBatteryStats.Stub
return mStats;
}
+ // These are for direct use by the activity manager...
+
+ void addIsolatedUid(int isolatedUid, int appUid) {
+ synchronized (mStats) {
+ mStats.addIsolatedUidLocked(isolatedUid, appUid);
+ }
+ }
+
+ void removeIsolatedUid(int isolatedUid, int appUid) {
+ synchronized (mStats) {
+ mStats.removeIsolatedUidLocked(isolatedUid, appUid);
+ }
+ }
+
+ void noteProcessStart(String name, int uid) {
+ synchronized (mStats) {
+ mStats.noteProcessStartLocked(name, uid);
+ }
+ }
+
+ void noteProcessState(String name, int uid, int state) {
+ synchronized (mStats) {
+ mStats.noteProcessStateLocked(name, uid, state);
+ }
+ }
+
+ void noteProcessFinish(String name, int uid) {
+ synchronized (mStats) {
+ mStats.noteProcessFinishLocked(name, uid);
+ }
+ }
+
+ // Public interface...
+
public byte[] getStatistics() {
mContext.enforceCallingPermission(
android.Manifest.permission.BATTERY_STATS, null);
@@ -166,20 +200,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub
}
}
- public void addIsolatedUid(int isolatedUid, int appUid) {
- enforceCallingPermission();
- synchronized (mStats) {
- mStats.addIsolatedUidLocked(isolatedUid, appUid);
- }
- }
-
- public void removeIsolatedUid(int isolatedUid, int appUid) {
- enforceCallingPermission();
- synchronized (mStats) {
- mStats.removeIsolatedUidLocked(isolatedUid, appUid);
- }
- }
-
public void noteEvent(int code, String name, int uid) {
enforceCallingPermission();
synchronized (mStats) {
@@ -187,27 +207,6 @@ public final class BatteryStatsService extends IBatteryStats.Stub
}
}
- public void noteProcessStart(String name, int uid) {
- enforceCallingPermission();
- synchronized (mStats) {
- mStats.noteProcessStartLocked(name, uid);
- }
- }
-
- public void noteProcessState(String name, int uid, int state) {
- enforceCallingPermission();
- synchronized (mStats) {
- mStats.noteProcessStateLocked(name, uid, state);
- }
- }
-
- public void noteProcessFinish(String name, int uid) {
- enforceCallingPermission();
- synchronized (mStats) {
- mStats.noteProcessFinishLocked(name, uid);
- }
- }
-
public void noteSyncStart(String name, int uid) {
enforceCallingPermission();
synchronized (mStats) {