OSDN Git Service

Add PowerManager method to assign blame to a single uid
authorMarco Nelissen <marcone@google.com>
Thu, 3 Oct 2013 15:49:36 +0000 (08:49 -0700)
committerMarco Nelissen <marcone@google.com>
Thu, 3 Oct 2013 15:49:36 +0000 (08:49 -0700)
Currently used by audioflinger to account for recording wakelocks.
b/10985160

Change-Id: I18fc8487f2a197bf02b5269a4bcae9e75b6c2207

core/java/android/os/IPowerManager.aidl
data/etc/platform.xml
services/java/com/android/server/power/PowerManagerService.java

index 23492ff..4c7bbb4 100644 (file)
@@ -23,9 +23,10 @@ import android.os.WorkSource;
 
 interface IPowerManager
 {
-    // WARNING: The first two methods must remain the first two methods because their
+    // WARNING: The first three methods must remain the first three methods because their
     // transaction numbers must not change unless IPowerManager.cpp is also updated.
     void acquireWakeLock(IBinder lock, int flags, String tag, String packageName, in WorkSource ws);
+    void acquireWakeLockWithUid(IBinder lock, int flags, String tag, String packageName, int uidtoblame);
     void releaseWakeLock(IBinder lock, int flags);
 
     void updateWakeLockWorkSource(IBinder lock, in WorkSource ws);
index 89d102d..3857ec0 100644 (file)
     <assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" />
     <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="media" />
     <assign-permission name="android.permission.WAKE_LOCK" uid="media" />
+    <assign-permission name="android.permission.UPDATE_DEVICE_STATS" uid="media" />
     <assign-permission name="android.permission.UPDATE_APP_OPS_STATS" uid="media" />
 
     <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="graphics" />
index fe09a33..4407de6 100644 (file)
@@ -579,6 +579,12 @@ public final class PowerManagerService extends IPowerManager.Stub
     }
 
     @Override // Binder call
+    public void acquireWakeLockWithUid(IBinder lock, int flags, String tag, String packageName,
+            int uid) {
+        acquireWakeLock(lock, flags, tag, packageName, new WorkSource(uid));
+    }
+
+    @Override // Binder call
     public void acquireWakeLock(IBinder lock, int flags, String tag, String packageName,
             WorkSource ws) {
         if (lock == null) {