)]}'
{
  "commit": "514074fae81028937eda29e782c92e8ea78d85d2",
  "tree": "063f29c329837834d3f60400899ea883322fa02e",
  "parents": [
    "de1fadfb7f70d464382e518c7f3390faf82f81f2"
  ],
  "author": {
    "name": "Dianne Hackborn",
    "email": "hackbod@google.com",
    "time": "Mon Feb 11 10:52:46 2013 -0800"
  },
  "committer": {
    "name": "Dianne Hackborn",
    "email": "hackbod@google.com",
    "time": "Mon Feb 11 15:33:48 2013 -0800"
  },
  "message": "App ops: cleanup, handle root and shell, perms.\n\nRework how the shell user is defined so that it is\nassociated with an actual apk, instead of being a free\nroaming uid with special permissions assigned to it.\nThis allows us to correctly account for its operations\nin app ops.\n\nImplement a special case for the root user in app ops --\nit is always allowed, always with the package name \"root\".\n\nAdd various code to take care of cleaning up package state\nfrom app ops -- when packages are uninstalled, and during\nboot if any packages currently being stored no longer exist.\n\nAlso fix a bug in the activity manager to correctly grant\npermissions in all cases when onNewIntent() is being called.\n\nChange-Id: Iae9f6d793ee48b93518c984ad957e46ae4582581\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cf04b5ca81d129c98eadb0bf630cb0e18de18d34",
      "old_mode": 33188,
      "old_path": "data/etc/platform.xml",
      "new_id": "d986c1ea123266948842023715333c5cfa2bed6b",
      "new_mode": 33188,
      "new_path": "data/etc/platform.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f993ab542fa17024131b408faca51ff9e1f6395e",
      "new_mode": 33188,
      "new_path": "packages/Shell/Android.mk"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b42db453e69ec936b98b3d849288a9137fe480f3",
      "new_mode": 33188,
      "new_path": "packages/Shell/AndroidManifest.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "50610d5861877fb05b8f6d62a7b5aa9264bc5734",
      "new_mode": 33188,
      "new_path": "packages/Shell/res/values/strings.xml"
    },
    {
      "type": "modify",
      "old_id": "e94d03ccdc887b62fe562ec05f9ecb7fed7665aa",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/AppOpsService.java",
      "new_id": "a402642bc0de9a964c06a1ea11a964b5c0448e82",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/AppOpsService.java"
    },
    {
      "type": "modify",
      "old_id": "7b6e79ea9ee284a6c6d120117a64fc4855a06dab",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/am/ActivityManagerService.java",
      "new_id": "4fbacb891666a4bd7c66323fdab47a018395ba68",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/am/ActivityManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "ba2e47a0153268164e8c3c1bfade867244323a15",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/am/ActivityRecord.java",
      "new_id": "cde17c9b39bae6b163239f7a03879a3d740b913e",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/am/ActivityRecord.java"
    },
    {
      "type": "modify",
      "old_id": "46d2cca2b9fda675740d9cfdd5a5a5d52ef3d52f",
      "old_mode": 33188,
      "old_path": "services/java/com/android/server/pm/PackageManagerService.java",
      "new_id": "e26f8fd6aaf1b63ef2cddb097f41349ccf597aee",
      "new_mode": 33188,
      "new_path": "services/java/com/android/server/pm/PackageManagerService.java"
    }
  ]
}
