)]}'
{
  "commit": "cd154e95353e7af11314d2339500d6c7f85e181a",
  "tree": "4e04c20b2ff5fde52da63511ba1a68a96ab6835b",
  "parents": [
    "eb422ead0cd7101855db4bff50cb71321cee2377"
  ],
  "author": {
    "name": "Dianne Hackborn",
    "email": "hackbod@google.com",
    "time": "Tue Feb 28 17:37:35 2017 -0800"
  },
  "committer": {
    "name": "Dianne Hackborn",
    "email": "hackbod@google.com",
    "time": "Wed Mar 01 12:40:57 2017 -0800"
  },
  "message": "Implement issue #34842682: Add ability to limit permissions based on features\n\nTwo new attributes for \u003cuses-permission\u003e: android:requiredFeature and\nandroid:requiredNotFeature.\n\nAlso update aapt to include this information in badging:\n\nuses-permission: name\u003d\u0027android.content.cts.REQUIRED_NOT_FEATURE_UNDEFINED\u0027 requiredNotFeature\u003d\u0027android.software.cts.undefined\u0027\nuses-permission: name\u003d\u0027android.content.cts.REQUIRED_MULTI_DENY\u0027 requiredFeature\u003d\u0027android.software.cts.undefined\u0027 requiredNotFeature\u003d\u0027android.software.cts\u0027\n\nTest: new PermissionFeatureTest suite.\n\nChange-Id: Icc1f815a4675ae9dd2cb7f61730ab28b5c11228a\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "22dbe7b514624778945ea11d036c0d0ef7cfff18",
      "old_mode": 33188,
      "old_path": "api/current.txt",
      "new_id": "8b112e16170312b8ac4767022ec9cfb26b689073",
      "new_mode": 33188,
      "new_path": "api/current.txt"
    },
    {
      "type": "modify",
      "old_id": "daf8cefeb443529ce4b42d01c672395ee882facf",
      "old_mode": 33188,
      "old_path": "api/system-current.txt",
      "new_id": "93346a396c8a2c9ea9448efa72265c9f01ab5b21",
      "new_mode": 33188,
      "new_path": "api/system-current.txt"
    },
    {
      "type": "modify",
      "old_id": "e9dddc313fbece8897149cd08ae09edb46104874",
      "old_mode": 33188,
      "old_path": "api/test-current.txt",
      "new_id": "47a0c464c0bfab792d980cbbf04f7dc91418d18b",
      "new_mode": 33188,
      "new_path": "api/test-current.txt"
    },
    {
      "type": "modify",
      "old_id": "0482f5136b0cbeeab019dbb3b28e9ebb542ceffa",
      "old_mode": 33188,
      "old_path": "core/java/android/content/pm/PackageManager.java",
      "new_id": "85f6169412b0befdfedf1a83cfa73ecc2af52c5a",
      "new_mode": 33188,
      "new_path": "core/java/android/content/pm/PackageManager.java"
    },
    {
      "type": "modify",
      "old_id": "f801e4547658d48dc1a0fe75040b3a40cb1f5698",
      "old_mode": 33188,
      "old_path": "core/java/android/content/pm/PackageParser.java",
      "new_id": "60cc6b06bf11af30f7bb972d67b0e8560f2f2995",
      "new_mode": 33188,
      "new_path": "core/java/android/content/pm/PackageParser.java"
    },
    {
      "type": "modify",
      "old_id": "76f4a7654af7395836654f08ee3c68b38bbfad12",
      "old_mode": 33188,
      "old_path": "core/res/res/values/attrs_manifest.xml",
      "new_id": "deacc24be158f7933cd6a3d99df1a37d2399a923",
      "new_mode": 33188,
      "new_path": "core/res/res/values/attrs_manifest.xml"
    },
    {
      "type": "modify",
      "old_id": "01737e73df93bf1ec583e32fa0a27aba9d47901e",
      "old_mode": 33188,
      "old_path": "core/res/res/values/public.xml",
      "new_id": "15764a9ceeef787cd97f95d51bb1ca0427b0903c",
      "new_mode": 33188,
      "new_path": "core/res/res/values/public.xml"
    },
    {
      "type": "modify",
      "old_id": "116c0a353643c61e664694f2666374b81844d37c",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/PackageManagerService.java",
      "new_id": "29d0646e0d67f516d81979c9c2dbf9ac0b46b845",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/PackageManagerService.java"
    },
    {
      "type": "modify",
      "old_id": "60338554868970b40ce23092cfb3fbe0c2cd50b9",
      "old_mode": 33188,
      "old_path": "services/core/java/com/android/server/pm/ParallelPackageParser.java",
      "new_id": "4ff3e1218b5367fd7a18d6332b8bc6fd32dce06e",
      "new_mode": 33188,
      "new_path": "services/core/java/com/android/server/pm/ParallelPackageParser.java"
    },
    {
      "type": "modify",
      "old_id": "6c6eb7eebafc424c280f3395d2661d3750f841c7",
      "old_mode": 33188,
      "old_path": "services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java",
      "new_id": "d665094c5a261e409ad16ff6fdc2012c5a4ea6db",
      "new_mode": 33188,
      "new_path": "services/tests/servicestests/src/com/android/server/pm/ParallelPackageParserTest.java"
    },
    {
      "type": "modify",
      "old_id": "0e031e74dd2f2e15a1b775e98753be6ce053a135",
      "old_mode": 33188,
      "old_path": "tools/aapt/Command.cpp",
      "new_id": "15648bdd1b3bcd523d157f5b14599c7e25678dff",
      "new_mode": 33188,
      "new_path": "tools/aapt/Command.cpp"
    }
  ]
}
