OSDN Git Service

Add optional logging to investigate URI grants.
authorJeff Sharkey <jsharkey@android.com>
Thu, 1 Sep 2016 17:07:23 +0000 (11:07 -0600)
committerJeff Sharkey <jsharkey@google.com>
Tue, 13 Sep 2016 15:57:40 +0000 (15:57 +0000)
Developers are seeing odd reports of URI permission grants
disappearing unexpectedly.  This optional logging can be enabled to
show exactly where granting/revoking is happening.

Bug: 30978171
Change-Id: I8a5a976f42d4b71270e69c5597dfcb5d89e18848
(cherry picked from commit d16b1258b2bda629477c73db1d3699a22d90f725)

services/core/java/com/android/server/am/UriPermission.java

index 6e371c1..0aa54d9 100644 (file)
@@ -19,6 +19,7 @@ package com.android.server.am;
 import android.content.Intent;
 import android.os.UserHandle;
 import android.util.ArraySet;
+import android.util.Log;
 import android.util.Slog;
 
 import com.android.server.am.ActivityManagerService.GrantUri;
@@ -93,7 +94,16 @@ final class UriPermission {
     }
 
     private void updateModeFlags() {
+        final int oldModeFlags = modeFlags;
         modeFlags = ownedModeFlags | globalModeFlags | persistableModeFlags | persistedModeFlags;
+
+        if (Log.isLoggable(TAG, Log.VERBOSE) && (modeFlags != oldModeFlags)) {
+            Slog.d(TAG,
+                    "Permission for " + targetPkg + " to " + uri + " is changing from 0x"
+                            + Integer.toHexString(oldModeFlags) + " to 0x"
+                            + Integer.toHexString(modeFlags),
+                    new Throwable());
+        }
     }
 
     /**