)]}'
{
  "log": [
    {
      "commit": "4bb8bea04a75194bd693b28a96fb1b1647ae465d",
      "tree": "c6f1df072cd45c7af331be1170d0ac4f0abb69f6",
      "parents": [
        "e0375adaaf127eea46d276c94fe318252947da02",
        "50c5253c2d1f757d457faf45cd7104d45114f107"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Fri May 12 01:00:34 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri May 12 01:00:34 2017 +0000"
      },
      "message": "Merge \"Adding \u0027uhid\u0027 permission for bluetooth stack.\" am: 3e010d1353 am: 96d3b668bb\nam: 50c5253c2d\n\nChange-Id: I965b2ad6b603dba82116180a43fc20684d2f1b59\n"
    },
    {
      "commit": "06640fea7bd8a799ff717e5b447d9d62e165ca18",
      "tree": "eaeab5c0c9ee78a335460d010e2521c316e5fe59",
      "parents": [
        "fb194bb81c234faa7b4e7253f8cf4228dbda4534"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 11 12:14:31 2017 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 11 12:15:08 2017 -0700"
      },
      "message": "Finish issue #37815224: DeviceManagementService is incorrectly...\n\n...starting services from jobs\n\nRemove dmagent from whitelist.\n\nTest: manual\n\nChange-Id: Id13b95b9ca4f8fa890f4e20cf133a6f4bc0e3cc5\n"
    },
    {
      "commit": "9e089567fdbbce18549d9a6fd7e4603bbc8aa2b2",
      "tree": "6208ffccf55ac37763080bc5d28b82d77ccd40ea",
      "parents": [
        "9d9aab48fa832b60b56f3c905017da1ef2737ff3"
      ],
      "author": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Mon May 08 15:42:14 2017 -0700"
      },
      "committer": {
        "name": "Siarhei Vishniakou",
        "email": "svv@google.com",
        "time": "Thu May 11 01:35:25 2017 +0000"
      },
      "message": "Adding \u0027uhid\u0027 permission for bluetooth stack.\n\nThis CL is in support of another CL c/2048848, topic\n\u0027Refactor hid command in /frameworks/base/cmds\u0027\nin internal master. Adding the permissions for bluetooth\ndevices here to access uhid_node as part of the new \u0027uhid\u0027\ngroup.\n\nBug: 34052337\nTest: Tested on angler, bluetooth mouse works OK.\n\nChange-Id: I63963984a0a3dccb4fccc64bb6fef4e809e2737e\n"
    },
    {
      "commit": "d1f3df43c066c3141d1ac028df1b65c0ae162821",
      "tree": "8e728d816c98b4b07902566f17580b4ba156c0d3",
      "parents": [
        "f1a4b507394f32a9a1fe83b5f6a9d5c543587a6c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 01 14:33:05 2017 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 01 14:33:57 2017 -0700"
      },
      "message": "Work on issue #37815224: DeviceManagementService is incorrectly...\n\n...starting services from jobs\n\nBring back the correct bg check restrictions on jobs, but also\nbring back whitelisting of dmagent so it doesn\u0027t crash.\n\nTest: booted and ran\n\nChange-Id: I78892386bdcd4f39e0b1a6d33b224bdff958af37\n"
    },
    {
      "commit": "39d081015acabae8f983681df2c402fadf067045",
      "tree": "468c4269256d475871c83277a2eb5d10c01d0f2b",
      "parents": [
        "ea00f16c8555c765f921f909974a1a426ea51b24"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 24 15:55:56 2017 +0000"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 24 15:55:56 2017 +0000"
      },
      "message": "Revert \"Whitelist DMAgent from bg check\"\n\nThis reverts commit ea00f16c8555c765f921f909974a1a426ea51b24.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: Id4ef18c858b320a31273f0b68d2a6c14d34d526d\n"
    },
    {
      "commit": "ea00f16c8555c765f921f909974a1a426ea51b24",
      "tree": "85739a75a4c7e20a0078cb14c206f5b1d7c66c8b",
      "parents": [
        "e35d50622c8387919e42b81c7b052c64decb0615"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 03 18:39:45 2017 +0100"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Mon Apr 03 19:29:51 2017 +0100"
      },
      "message": "Whitelist DMAgent from bg check\n\nThis should be reverted before O is shipped.\n\nTest: Found DMAgent in the whitelist in Settings.\n\nBug: 36856786\n\nChange-Id: I7828566e4bc93a30457c594471fa43270c0bf3b3\n"
    },
    {
      "commit": "54479c5e239efffffb3b64b8541c5fbedd639896",
      "tree": "fa6ae182ad7b114db5575646a4ebc0ab8294b7d9",
      "parents": [
        "bbb551cfb5df58512f6d0df889766887d440eb08"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Mar 30 16:27:49 2017 +0000"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Thu Mar 30 16:27:49 2017 +0000"
      },
      "message": "Revert \"Whitelist ManagedProvisioning from bg check\"\n\nThis reverts commit bbb551cfb5df58512f6d0df889766887d440eb08.\n\nReason for revert: \u003cINSERT REASONING HERE\u003e\n\nChange-Id: I1d36b8760aac68fc4d3fca106d20cddfddaa9230\n"
    },
    {
      "commit": "bbb551cfb5df58512f6d0df889766887d440eb08",
      "tree": "6ff4f3dafa2e7ee25f1db5f8951e2aaa3a6972c8",
      "parents": [
        "76c32a35a956fa3a4559c6ed9512f4083ec011b7"
      ],
      "author": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Wed Mar 29 15:53:07 2017 +0100"
      },
      "committer": {
        "name": "Tony Mak",
        "email": "tonymak@google.com",
        "time": "Wed Mar 29 20:41:17 2017 +0000"
      },
      "message": "Whitelist ManagedProvisioning from bg check\n\nNotice that app put in this list is also exempted from doze.\nAlso, this only exempts us from the service restriction, but not the broadcast one.\n\nTest: adb shell am make-uid-idle  --user 0 com.android.managedprovisioning\n      \u0026\u0026 adb shell am broadcast -a android.intent.action.PRE_BOOT_COMPLETED -n com.android.managedprovisioning/com.android.managedprovisioning.ota.PreBootListener\n      Observe there is no crash\n\nChange-Id: Ic0a943a9b66c909a6727f9411af519a8c6cf0157\nFix: 36705375\n"
    },
    {
      "commit": "5517b7372679d4a496cb9afbd88a161c18c8f0ce",
      "tree": "657af3a78147a2e9627c9967cc1023789159e145",
      "parents": [
        "c7eefdbda7864c71f2bc1845e83d9a21aa10c338"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 07 14:20:03 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Mar 07 14:21:30 2017 -0700"
      },
      "message": "Revert \"Start locking down /data/media access.\"\n\nCaused b/35926593 because ExternalStorageProvider needs raw\naccess to underlying devices that aren\u0027t mounted visibly, like\nUSB mass storage devices.\n\nThis reverts commit 53d64fc839ad79be28d783f0f14082310a647dd9.\n"
    },
    {
      "commit": "53d64fc839ad79be28d783f0f14082310a647dd9",
      "tree": "48d0ff3d64b6995613d2d69c70ee6a3e91afcbfd",
      "parents": [
        "458428ea6633e6000b453ef272c13823f5d02fe5"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Feb 22 14:10:44 2017 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Feb 22 15:48:46 2017 -0700"
      },
      "message": "Start locking down /data/media access.\n\nThe new sdcardfs filesystem requires that we have stricter access\ncontrols around /data/media style locations.  Start by taking away\nthe \"media_rw\" GID from apps requesting the WRITE_MEDIA_STORAGE\npermission.\n\nCommon use-cases like music playback appear to continue working fine,\nas clients should only be attempting to use /data/media paths after\ncalling maybeTranslateEmulatedPathToInternal().\n\nTest: builds, boots, music playback works\nBug: 35447080\nChange-Id: Iba9f3ef41d3277c75497f675a1fe6d3406cf4542\n"
    },
    {
      "commit": "3283079e5e6e100c183eac2c8c2da251d5d3d42b",
      "tree": "17c3ea781cd3cc41d30565b69a46cce23632f034",
      "parents": [
        "62185042fabd40072df5ac3a4484f1a69cffdc81"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 10 11:23:43 2017 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 10 11:42:23 2017 -0800"
      },
      "message": "Put shell on the idle/background whitelist\n\nBug 35229549\n\nChange-Id: I9f7dd66c37af9c28c9f0714be4358b94930c2d32\n"
    },
    {
      "commit": "3f13c54f1443809ea14dbc04e14cdf2d4201be60",
      "tree": "34618cbaa14d3b6c6ad547558d803690855306b5",
      "parents": [
        "660ea8c6d7b18ad84d797f5746aec9db4fa3ecba"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 11:05:11 2017 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 09 11:07:18 2017 -0800"
      },
      "message": "Fix issue #34592078: Mobile broadcast crash observed randomly...\n\n...when using device on mobile data\n\nWhitelist CellBroadcastReceiver, this is a core OS component anyway\nso this probably makes sense.\n\nTest: manual\n\nChange-Id: I1560093640e81064ad123ff0bbcb307583fc47c6\n"
    },
    {
      "commit": "bd8851022e36a14b068af3ef00b3a19e46f1f04e",
      "tree": "a3539998ef01d31d75159c82fdfc0f74de5f8c8e",
      "parents": [
        "85a05cd9b5945c42f46ce1bcacb2d1e0aa8c7a44"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Feb 01 16:07:31 2017 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Feb 06 17:14:20 2017 +0000"
      },
      "message": "Extend permissions of cameraserver\n\nCamera service will need to a way to query\nthe process state and oom score.\n\nBUG: 34701266\nTest: Manual testing + cts-tradefd run cts -m Camera --abi armeabi-v7a --disable-reboot\nChange-Id: I4df704817d2fc728d421daeffbbbcee2e61d8c3b\n"
    },
    {
      "commit": "35cb698a88ef6479dbcbf6be8ff216b1ab11db66",
      "tree": "89fb3d70f9e5d9308b7ba52c13d8af5453324332",
      "parents": [
        "dfa6e6f18650cfab8c8f6b7269ef131e391484ee"
      ],
      "author": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Tue Sep 20 11:18:14 2016 -0700"
      },
      "committer": {
        "name": "Ajay Panicker",
        "email": "apanicke@google.com",
        "time": "Tue Sep 20 23:05:50 2016 +0000"
      },
      "message": "Remove net_bt_stack group and replace it with bluetooth\n\nBug: 31549206\nChange-Id: I4da37bef5cff0e6054e952e6755905a5cc1e2e68\n"
    },
    {
      "commit": "05515ae925aa931bc19777e723e09a3748d8e5e3",
      "tree": "e324513d73ed4644cc9e496c64b4d46c32a1dc15",
      "parents": [
        "21a608f27f1f7b9c0fcfbb982f290fed29cc1817"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 31 17:50:39 2016 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Tue May 31 17:50:39 2016 -0700"
      },
      "message": "Move DownloadsManager to permanent whitelist.\n\nDownloadProvider is now based completely on JobScheduler, and deep\ninside the platform we allow foreground\ndownloads (FLAG_WILL_BE_FOREGROUND) to run even while the device is in\ndoze, so it doesn\u0027t need to be temporarily whitelisted anymore.\n\nBUG: 29056149\nChange-Id: I3658bb42aeeee5d5528f91ec990d6e1bc54257b6\n"
    },
    {
      "commit": "1d0fbedf45b57f7c70ae2c10597707b8a54c63d2",
      "tree": "f0859e5c6df9a01c77086e4e2c6b5c0df4ddb723",
      "parents": [
        "477af0d4ea0042b8e05084c80ff6960b41d9ef12"
      ],
      "author": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Apr 27 17:11:37 2016 -0700"
      },
      "committer": {
        "name": "Felipe Leme",
        "email": "felipeal@google.com",
        "time": "Wed Apr 27 17:11:37 2016 -0700"
      },
      "message": "Whitelist Downloads Manager for Data Saver.\n\nBUG: 28431507\n\nChange-Id: I0478ff48865951a7ebac94434f48ad0e272e0901\n"
    },
    {
      "commit": "e5313a842a5e41cde624386448d1e77cb0fbfae7",
      "tree": "00150089a026b4f81faecd83f353a569f4961c61",
      "parents": [
        "1bb269d8fe9adbf41312e2203e08da34634ae863"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Apr 11 09:59:56 2016 -0700"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Apr 11 10:03:18 2016 -0700"
      },
      "message": "Keep read/write external storage as built-in permissions\n\nThese are permissions that were mapped to gids but we need\nto keep them listed event though they are no longer mapped\nto gis until an upgrade from L to the current version is to\nbe supported. These permissions are built-in and in L were\nnot stored in packages.xml as a result if they are not defined\nin the platform.xml while parsing packages.xml we would\nignore these permissions being granted to apps and not\npropagate the granted state.\n\nFrom N we are storing the built-in permissions in packages.xml\nas the saved storage is negligible (one tag with the permission)\ncompared to the fragility as one can remove a built-in permission\nwhich no longer needs to be mapped to gids and break grant\npropagation.\n\nbug:27185272\n\nChange-Id: I65e05c4f7edd9a934888b4d0974100aa4e9a9453\n"
    },
    {
      "commit": "75cade0a5fd5ec432870de9977f81091ab389423",
      "tree": "e2d6d89bbac2e913e3e895863084fac6510f1ee6",
      "parents": [
        "225257abec534ac25275c4101ae1633f062b04b5"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Jan 11 10:56:21 2016 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Mon Jan 11 10:56:21 2016 -0800"
      },
      "message": "Add cameraserver process\n\nAdd UID and permissions for cameraserver process.\n\nBug: 24511454\nChange-Id: Iccbda4b42e5584a1f56f9afe5e15a16f40dd2922\n"
    },
    {
      "commit": "701662547341269d610ac5f093e449a4c7078e43",
      "tree": "f316587362eec8ceca0ed78fc95e3ef8b654c24d",
      "parents": [
        "6eb1a3e8c68fdbb9522679dabdc75168eb2c6e55"
      ],
      "author": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Nov 23 17:13:25 2015 -0800"
      },
      "committer": {
        "name": "Pavlin Radoslavov",
        "email": "pavlin@google.com",
        "time": "Mon Dec 28 19:32:48 2015 +0000"
      },
      "message": "Use GID \"wakelock\" to control access to kernel wakelock\n\n * Added GID \"wakelock\" (3010) to the list of groups the System Server\n   belongs to.\n\n * Added GID \"wakelock\" to the list of assigned groups for the\n   \"android.permission.BLUETOOTH_STACK\" Android permission.\n\n * Grant CAP_BLOCK_SUSPEND to processes that belong to GID \"wakelock\"\n\nBug: 25864142\nChange-Id: I8a9a5f11e4a9ecd1abf2d4f4b90ec89b3101332e\n"
    },
    {
      "commit": "ed0ea40a41aae8e65bc189efe6b631ca78259383",
      "tree": "611137e9d044c6b17c1b516c306b3748737b6421",
      "parents": [
        "89eac2c60f2ada03acee2895420f965842d264cb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Oct 30 14:11:46 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 15:35:00 2015 -0800"
      },
      "message": "Add Android permissions for audioserver\n\naudioserver has the same permissions as mediaserver.\n\nTBD: Pare down permissions.\n\nBug: 24511453\nChange-Id: Id7abddd79a730ad95b554a94207df3aa4b676f2a\n"
    },
    {
      "commit": "8e4f4b3d9409c5a5329aaa4caf0102167d5e610d",
      "tree": "7e5c73a9a9d0fa2b374e7a798a18045423143d45",
      "parents": [
        "ac7579a6e5cb8302f38ebe2fc8fbcb6812621402"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Dec 02 12:18:52 2015 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Dec 02 12:20:30 2015 -0800"
      },
      "message": "Add permission to prevent third-parth apps from querying OOM scores\n\nbug: 25853091\nChange-Id: Ic1cdbf155e1e930405773fd078dfc57fda2d9afa\n"
    },
    {
      "commit": "9c990c15ee74ef7aaa742701156df3055d68859a",
      "tree": "0e51f5530f0e3f2c1688016e1563ec28214945a3",
      "parents": [
        "c0c73271b0034ba20b1b73cb633c99a86c504a01"
      ],
      "author": {
        "name": "Xiaohui Chen",
        "email": "xiaohuic@google.com",
        "time": "Mon Nov 23 12:03:08 2015 -0800"
      },
      "committer": {
        "name": "Xiaohui Chen",
        "email": "xiaohuic@google.com",
        "time": "Mon Nov 23 12:03:08 2015 -0800"
      },
      "message": "Add com.android.settings to white list\n\nBug: 24256521\nChange-Id: If315b082960190b3ebea387484f5a00e707ef558\n"
    },
    {
      "commit": "7db5af124e551554f7a2f1abdd2a486c937910fe",
      "tree": "7952782054b5a03cc9371d10584a68c774290f7c",
      "parents": [
        "e4f04a1a727d003229a30c4f1bedd03fad7e32ad"
      ],
      "author": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Fri Jul 31 16:50:27 2015 -0700"
      },
      "committer": {
        "name": "Fyodor Kupolov",
        "email": "fkupolov@google.com",
        "time": "Wed Aug 26 10:18:10 2015 -0700"
      },
      "message": "Limit the number of apps running as system user\n\nFor the system user, enable apps based on the following conditions:\n- app has no launcher icons or has INTERACT_ACROSS_USER_FULL permission\n- app is whitelisted\n- app is not in the blacklist\n\nBug: 23283899\nChange-Id: I90fa266e8cfb28d002e5f792998fdddb6a1e6969\n"
    },
    {
      "commit": "4a503b1ece485d44c15eb02ec2bcd464b46e6f7f",
      "tree": "72a22a0708c74e5f99a8bf2f4cb68f3d6ac15cf7",
      "parents": [
        "1d7c32548c30c62a35c54a624f89d5f9db31b9d4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 06 22:19:06 2015 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 07 14:23:32 2015 -0700"
      },
      "message": "Fix issue #22989030: Separate battery whitelists\n\nWe now have a new whitelist you can put apps in, which\nopts them out of the old battery saver mode and new app idle,\nbut doesn\u0027t keep them from going in to doze.  This is for a few\nspecial cases that we had previously whitelisted for battery saver,\nand inherited to the new modes...  ultimately we should figure out\nhow to get these apps out of the whitelist completely, but this\nwill help for now.\n\nApps in this new whitelist are not shown in the UI, because they\nare still significantly restricted by not being able to operate\nnormally in doze.  This also means they are still visible in the\nlist of all apps for the user to be able to put them on/off the\ncomplete whitelist if that is what they really want.\n\nIn the course of doing this, I needed to clean up code in the\nnetwork policy manager to better separate management of the\ntwo firewall rules that now have different whitelists applied\nto them.  This also hopefully just generally simplifies and cleans\nup that code.  Hopefully!\n\nChange-Id: I92e15f2f85899571dd8b049b5e3eb1354f55f353\n"
    },
    {
      "commit": "32e80d7588720bdc9f8a3e961ac4566d7c80b2b9",
      "tree": "f973bf150361de86acd613b0b597a7043e6ee3bc",
      "parents": [
        "1f6c9a12149040f7980a45cc6a6518bbb1d6cc7c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jul 06 09:45:55 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Jul 06 10:54:28 2015 -0700"
      },
      "message": "Permission to view shared storage for all users.\n\nTypical apps are restricted so they can only view shared storage\nbelonging to the user they\u0027re running as.  However, a handful of\nsystem components need access to shared storage across all users,\nsuch as DefaultContainerService and SystemUI.\n\nSince WRITE_MEDIA_STORAGE already offers this functionality by\nbypassing any FUSE emulation, reuse it to grant the \"sdcard_rw\" GID\nwhich is no longer handed out to third-party apps.  Then we change\nthe FUSE daemon to allow the \"sdcard_rw\" GID to see shared storage\nof all users.\n\nBug: 19995822\nChange-Id: I504c2a179ba74f142ed0d32da5baa69f4212cd82\n"
    },
    {
      "commit": "9527b223a9d4a4d149bb005afc77148dbeeff785",
      "tree": "5e3839f65f6dad7f402c280ef5de091238648159",
      "parents": [
        "9206d6a0e69ef0f60e20464796d4a2da6f7c42f4"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 24 15:24:48 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Thu Jun 25 22:25:48 2015 -0700"
      },
      "message": "Let\u0027s reinvent storage, yet again!\n\nNow that we\u0027re treating storage as a runtime permission, we need to\ngrant read/write access without killing the app.  This is really\ntricky, since we had been using GIDs for access control, and they\u0027re\nset in stone once Zygote drops privileges.\n\nThe only thing left that can change dynamically is the filesystem\nitself, so let\u0027s do that.  This means changing the FUSE daemon to\npresent itself as three different views:\n\n/mnt/runtime_default/foo - view for apps with no access\n/mnt/runtime_read/foo - view for apps with read access\n/mnt/runtime_write/foo - view for apps with write access\n\nThere is still a single location for all the backing files, and\nfilesystem permissions are derived the same way for each view, but\nthe file modes are masked off differently for each mountpoint.\n\nDuring Zygote fork, it wires up the appropriate storage access into\nan isolated mount namespace based on the current app permissions.  When\nthe app is granted permissions dynamically at runtime, the system\nasks vold to jump into the existing mount namespace and bind mount\nthe newly granted access model into place.\n\nBug: 21858077\nChange-Id: I62fb25d126dd815aea699b33d580e3afb90f8fd2\n"
    },
    {
      "commit": "00f3904629ef89192e061c1995801ef322fc0bcf",
      "tree": "bbb49b68ec6171faf692eb5c874eed2da271bf43",
      "parents": [
        "95c1adea0c5fe10ceba217a327163757f4589d3d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 23 16:51:22 2015 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Mar 23 19:14:19 2015 -0700"
      },
      "message": "Introduce per-user GIDs for storage.\n\nThis will eventually allow us to have a single unified filesystem\ninstead of requiring zygote to use bind mounts.\n\nChange-Id: I29b819ab51498b4bab874e0367b1ab4165f84025\n"
    },
    {
      "commit": "3bdd327f8532a79b83f575cc62e8eb09a1f93f3d",
      "tree": "92480de80f3818f6f1746df0ea719cf547324b22",
      "parents": [
        "8b0c8ffb2d921ce5c90bcaaa3f1182d531d90d2c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Nov 27 18:17:35 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 12 11:15:49 2015 +0000"
      },
      "message": "Move apache specific portions of android.net.http to external/apache-http.\n\nWe continue to compile external/apache-http into ext.jar. This contains\na few changes apart fom the classes moving around :\n\n- Makefile changes to build docs and api-stubs for now. A future change\n  will revert these changes and remove these classes from stubs and\n  docs.\n- Hardcode event IDs in legacyerrorstrings to avoid a dependency between\n  the frameworks and apache. These strings are on their way out and will\n  never change anyway.\n- Remove imports due to {@link} tags and use {@code} instead.\n- Remove an accidental(?) dependency on apache commons code that\u0027s a\n  part of apache-http.\n\nbug: 18027885\n\nChange-Id: I51cd038d846ec7d02c283a4541b10a6a9cf62ecf\n"
    },
    {
      "commit": "1ed78fbf28728cd12ca18e4d0773b34f3e586918",
      "tree": "295bffcbc4c8442bb8f462d1893b9c06c3b6b403",
      "parents": [
        "70523ec551abce46f85f3f10251006d65c0e4510"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 20 13:44:23 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jan 21 12:49:14 2015 +0000"
      },
      "message": "Add library definition for org.apache.http.legacy.\n\nbug: 18027885\nChange-Id: I300ab2eb0f87e004ef20157bd23517865133665c\n"
    },
    {
      "commit": "981258e5f957899b034a98ebebade1f0366f506a",
      "tree": "dae8c7cf094643cc2c3ae837b08979195f0fd3dc",
      "parents": [
        "796d6eced1e23217914e639da45d9371baf8a5b0"
      ],
      "author": {
        "name": "Benson Huang",
        "email": "benson.huang@mediatek.com",
        "time": "Tue Sep 23 10:57:40 2014 +0800"
      },
      "committer": {
        "name": "Nicholas Sauer",
        "email": "nicksauer@google.com",
        "time": "Wed Oct 01 18:39:16 2014 -0700"
      },
      "message": "[FM] Add FM permission to support FM radio app\n\nAdd FM permission like KK to support FM radio app.\n\nChange-Id: Ifb76f63e3136a5f88306903fd28e9abbb01e69c9\nSigned-off-by: Benson Huang \u003cbenson.huang@mediatek.com\u003e\n\nConflicts:\n\tdata/etc/platform.xml\n"
    },
    {
      "commit": "270e1f4297995248b450afc9e6134da1bb7e368a",
      "tree": "1f6ea93a484ecc6cff50dfb555ba83d47684de1f",
      "parents": [
        "51a400eb440c89fb06a47371bb7b026f00edb09c"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Oct 01 16:02:05 2014 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Oct 01 16:26:49 2014 -0700"
      },
      "message": "Give audio GID to MANAGE_VOICE_KEYPHRASES apps.\n\nSome system apps doing hotword training need low-level access to\naudio hardware, beyond what the existing HAL offers.  For now, give\nthem the audio GID.\n\nBug: 17763721\nChange-Id: I8025c3abacae13a6ffec4e10e4976a67ab505bdf\n"
    },
    {
      "commit": "be7c50e0a14e91330ce13161bc14a33d34ff6aca",
      "tree": "d502e9b3a295f0cbfdd91b9b597c7452eb05b784",
      "parents": [
        "5dfb86bb09a1c5eebd6522426c94b92c02154779"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 30 14:43:28 2014 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 01 09:22:57 2014 -0700"
      },
      "message": "Add network access blocking when in battery save mode.\n\nThe network policy manager now monitors battery save mode and,\nwhen in battery save, uses its facility to block access to metered\nnetworks to block access to all networks.  That is, it tells the\nnetwork management service that all networks have an (infinite)\nquota, and puts various app uids to be restricted under quota\ninterfaces as appropriate.\n\nThis new network blocking needs a new facility to be able to white\nlist apps, such as GmsCore.  To do this, I refactored the package\nmanager\u0027s permission configuration stuff into a separate SystemConfig\nclass that can be used by others, and it now has a new tag to\nspecify package names that should be white-listed for power save\nmode.  These are retrieved by the network policy manager and used\nto build a whitelist of uids.\n\nThe new general config files can now go in system/etc/config,\nthough currently everything still remains in the permissions dir.\n\nStill left to be done is changing the semantics of what uids are\nallowed in this mode, to include all perceptable uids.  (So that we\ncan still do things like background music playback.)  This will be\ndone in a follow-on CL.\n\nChange-Id: I9bb7029f61dae62e6236da5ca60765439f8d76d2\n"
    },
    {
      "commit": "d983ba5cac232c01dff818556b57f497f7d99854",
      "tree": "8ef43b6d5569d295aa60e2b9646955127a9df2c0",
      "parents": [
        "d6957d5f8ddf3b542996955bf2d6efe0e9804ef4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 08:49:36 2013 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 03 08:49:36 2013 -0700"
      },
      "message": "Add PowerManager method to assign blame to a single uid\n\nCurrently used by audioflinger to account for recording wakelocks.\nb/10985160\n\nChange-Id: I18fc8487f2a197bf02b5269a4bcae9e75b6c2207\n"
    },
    {
      "commit": "9c104ab454de23628b5751db44ef08221d20dc86",
      "tree": "6a4e30f6ef68325ac176554ccbc2038e68e0e458",
      "parents": [
        "5dea7d554a6c9655ad2b578f900fe8840c86934b"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 03 12:04:39 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 03 12:04:39 2013 -0700"
      },
      "message": "Remove deprecated ACCESS_DRM permission.\n\nThe permission no longer exists, so don\u0027t assign it to media.\n\nBug: 9967611\nChange-Id: I5e11fcfc265310cbc3c2a8812a13e68b717fa476\n"
    },
    {
      "commit": "02e4d16ed9a0499ad72f2ff427e8bf0e85d7ae06",
      "tree": "d5b963d7f270c9432f82e0f78bdd88b6961ee958",
      "parents": [
        "998cfa2c63c54a73d0c51d062408d370ed0b3107"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 20:31:36 2013 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Aug 12 20:31:36 2013 -0700"
      },
      "message": "Add GIDs to packages.list, update SD card perms.\n\nWrite supplementary GIDs to packages.list for lower-level system\ncomponents to parse.\n\nWRITE_EXTERNAL_STORAGE also implies sdcard_r GID. Switch to always\nenforce READ_EXTERNAL_STORAGE permission. Update permission docs to\nmention new behavior.\n\nChange-Id: I316ba4b21beebb387ac05c80980ae9b38235b37d\n"
    },
    {
      "commit": "b8dd91a6b23c5098740fa080eb265e516e546dd9",
      "tree": "891603b8d8f98eda4f9e432a6e883068f137189a",
      "parents": [
        "cdce4835fb072fb28f500c15afe16ea259213891"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 17 12:37:42 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 17 22:00:02 2013 +0000"
      },
      "message": "Camera: Remove camera gid from apps with camera permission.\n\nThis gid is not needed by camera-using apps, since all camera access\nis mediated by the camera service, which does not depend on gid for\npermission checks.\n\nBug: 9904186\nChange-Id: I859e6cabc905af9d98e2b09f5bbad086b5eb2b26"
    },
    {
      "commit": "788717ca599c714d58b2cb5deea1d37b4a711c07",
      "tree": "6e13d87e3e3ac8ee9543715536fbe2d74a737e47",
      "parents": [
        "ff4fcdb98c9575642c48f1daeafff4b257769e81"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Feb 15 18:30:15 2013 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Feb 25 09:27:42 2013 -0800"
      },
      "message": "Camera and MediaRecorder: Support AppOps\n\n- Allow media processes to update AppOps state\n- Pass package name to media services\n\nBug: 8181262\nChange-Id: I115d39f0b306cb9eb7cd3d3e663c680b7322fd3f\n"
    },
    {
      "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"
    },
    {
      "commit": "b616f0c239ad61f818741909821b86aceff60b60",
      "tree": "477580ad31d41a6ccd71aefe791f5662b6dd7336",
      "parents": [
        "53d49f1702df41a4ca342a1df6e720b16e094797"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Jan 29 09:05:21 2013 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Jan 29 10:39:13 2013 -0800"
      },
      "message": "add android.permission.LOOP_RADIO for access to loop radio device\n\nChange-Id: I811d70fa67aa758122678809f32b8aade42ced0f\n"
    },
    {
      "commit": "ef48662876cd79c9cd459e44bf51aeac81b06fd7",
      "tree": "b39c5fc58dc0856f46006a3e462b06e144aca01e",
      "parents": [
        "4c7a5d6a453512ec29c402530231dbdda5cf5f22"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Nov 15 19:49:42 2012 -0800"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Nov 15 19:49:42 2012 -0800"
      },
      "message": "grant shell user EXPAND_STATUS_BAR permission\n\nBug: 7555251\nChange-Id: I68cebb26bcee060c56e124941f3ea9289ab2b3bf\n"
    },
    {
      "commit": "fca9d63635d9603c318a089397b23c17682453e3",
      "tree": "e3794cfee6c568be0c83157ab35fde4e71f94cee",
      "parents": [
        "30ed33b141dd1add916466c193b6735cd0bf8315"
      ],
      "author": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Thu Oct 04 12:25:28 2012 -0700"
      },
      "committer": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Thu Oct 04 18:35:42 2012 -0700"
      },
      "message": "Add multi user support for bluetooth\n\nCreate a BLUETOOTH_STACK permission to share between all users of\nBluetooth apk. Bluetooth Manager binds to apk of current user\nbug 6925422\n\nChange-Id: I2df5546e977c2d77bc66d97d12479d933826922a\n"
    },
    {
      "commit": "786b44046a79d6c4c9cd07f5989d491c7196ad80",
      "tree": "ac3d22036260f4e56340903c4ae71f8f7c81e8fe",
      "parents": [
        "9d9ea05cde56f6663f57925212c87860d1cbc1b2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 27 15:14:02 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 27 15:16:33 2012 -0700"
      },
      "message": "Fix installing applications from non-primary users.\n\nWe also now send the correct broadcasts to each user.\n\nYou no longer need to be running the shell as root\nto be able to create/remove users.\n\nAlso added some more man page material to the pm command, and\ngot rid of a bunch of showUsage() calls that now make error\nmessages completely buried because of how large the usage info\nhas become.\n\nAnd the package manager now shows the user each historical broadcast\nwas sent to.\n\nChange-Id: Iab42498e1352a0c023069139c80fc04d2d69ab4b\n"
    },
    {
      "commit": "b497a819b78cca9cc7e7cc115a7a366fd192f6f0",
      "tree": "30474cfeacf95083807532d898d8e28ecb20c44b",
      "parents": [
        "576238a33131829e60a751774c9baabf4a466706",
        "f52dcf32f2fba7c89bbd127c22f2ee2b933915c6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jul 24 22:03:33 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 24 22:03:33 2012 -0700"
      },
      "message": "am f52dcf32: am da9754e8: Merge \"Fix issue #6860828 Non-root shell can\\\u0027t grant permissions\" into jb-dev\n\n* commit \u0027f52dcf32f2fba7c89bbd127c22f2ee2b933915c6\u0027:\n  Fix issue #6860828 Non-root shell can\u0027t grant permissions\n"
    },
    {
      "commit": "4d5f968f41b8d91f03a1311d3a99215a928f563b",
      "tree": "cf1d09f235c6a49c1d7bbea866fb28afef041dcd",
      "parents": [
        "c7504032f3826a27da7ac9d75b1b56c7e4c4ce32"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 23 10:16:34 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jul 23 11:46:32 2012 -0700"
      },
      "message": "Fix issue #6860828 Non-root shell can\u0027t grant permissions\n\nThat, plus a few other permissions.\n\nBug: 6860828\nChange-Id: I69f0360471e4fd46e689388cd993e18c1e0bfb02\n"
    },
    {
      "commit": "0f42037eb7b5118015c2caca635538324ccf0ccf",
      "tree": "46a7ba36216a2cb617541ec68f18b413419e148f",
      "parents": [
        "919a4c6264b733585152ce1dc6f868c1093d368b"
      ],
      "author": {
        "name": "fredc",
        "email": "fredc@broadcom.com",
        "time": "Thu Apr 12 00:02:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 21:20:54 2012 -0700"
      },
      "message": "Non persistent adapter service\n\nChange-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5\n\nConflicts:\n\n\tcore/java/android/bluetooth/BluetoothInputDevice.java\n\nConflicts:\n\n\tcore/java/com/android/internal/app/ShutdownThread.java\n\tservices/java/com/android/server/SystemServer.java\n\nConflicts:\n\n\tservices/java/com/android/server/SystemServer.java\n\tservices/java/com/android/server/pm/ShutdownThread.java\n"
    },
    {
      "commit": "7924512aa12c6af37d90e8ccfcdf04eb78a294a3",
      "tree": "d0b539a6b6ea5d810458196dcff5f377428d3311",
      "parents": [
        "05f692e8050c3650ec123b2361143a121e2e7d4b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 12 10:51:26 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 12 15:07:31 2012 -0700"
      },
      "message": "Add new READ_EXTERNAL_STORAGE permission.\n\nAlso adds some initial compatibility code for dealing with it.\n\nChange-Id: I104bff11798349e4aaa6da9b7be787b257daa1bb\n"
    },
    {
      "commit": "25872aa3ef189ae5506a923398af11ce5eb1a9b9",
      "tree": "ece1cffcc342e5e7133ca42d33ce97bbf403f779",
      "parents": [
        "91ec0b722f659bb5e4bcc64339f2fbbe30a31287"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 03 19:19:09 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 15 14:55:47 2012 -0800"
      },
      "message": "Adding shell commands for modifying content.\n\n1. Added methods to the ActivityManagerService remote interface\n   that allow accessing content providers outside of an application.\n   These methods are guarded by an internal signature protected\n   permission which is given to the shell user. This enables a\n   shell program to access content providers.\n\n2. Implemented a shell command that takes as input as standart\n   fagls with values and manipulates content via the content provider\n   mechanism.\n\nChange-Id: I2943f8b59fbab33eb623458fa01ea61a077b9845\n"
    },
    {
      "commit": "7aa6d31240787da87bb06d4457fdf23e39c46f98",
      "tree": "309046e35f67438b25889af8c5a3e70c5de4bc62",
      "parents": [
        "b35a21f987b99cfe90f4c46e0a708703274b8f46"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 15 15:01:14 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 15 16:12:30 2011 -0800"
      },
      "message": "Whoops, need to acquire lock.\n\nAlso increase time between reports to try to reduce the amount\nof redundant spam we get.\n\nChange-Id: Iedd7d743826fffa62ee431073cb7dfb49a00cea0\n"
    },
    {
      "commit": "2c84cfc001fb92a71811bf7384b7f865ff31ff9d",
      "tree": "1d43eda4854e37a553b85ce759ea4fffd41c9edb",
      "parents": [
        "dd79b4c85a9dd2c2ad702ea2137fe2a076567fa1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 31 15:39:59 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Oct 31 16:52:34 2011 -0700"
      },
      "message": "Various performance and other work.\n\n- IME service now switches between visible and perceptible depending on\n  whether it is being showm, allowing us to more aggressively free its\n  memory when not shown.\n\n- The activity display time is no longer delayed by the activity\n  transition animation.\n\n- New -R (repeat) option for launching activities with the am command.\n\n- Improved some documentation on Loader to be clear about some methods\n  that apps should not normally call.\n\n- FrameworkPerf test now allows you to select individual tests to run.\n\nChange-Id: Id1f73de66dc93d63212183958a72119ad174318b\n"
    },
    {
      "commit": "fc8fa638617efb5695a1f89ea75375faebbe2a40",
      "tree": "685aeed4995ea17399accf5d46545038235d5105",
      "parents": [
        "9a5505f0253a9114aea6192a22da6ec1c1b85ed2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 17 16:20:47 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Aug 17 17:45:05 2011 -0700"
      },
      "message": "Fix issue #5128639: SystemUI grows by 10MB after taking a screenshot\n\nWe now do the screenshot in a separate process.\n\nAlso change the recents panel to not use hardware acceleration\non lower-end devices.  And improve how it gets shown to not\nload all data up-front which results in a long delay when you have\nlots of recents.\n\nChange-Id: Ia309a90f9939e5405758621b3f7114597bd0c02a\n"
    },
    {
      "commit": "6dbdc40e9a317488fc5f6e14cf9e699bce9a9387",
      "tree": "eed576356d64812249d1b021eff7f88e24bde25a",
      "parents": [
        "6c454c3225fd47422024af915fa28d5210d1e82e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 22 09:04:31 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 18:41:12 2011 -0700"
      },
      "message": "Fix issue 4604090: notification sound interrupted.\n\nThe problem is that the audio HAL fails to acquire the wake lock when playing the notification.\nThis is because of a change that removed the mediaserver process form the system group for honeycomb.\n\nThe fix consists in requesting the wake lock from PowerManagerService when AudioFlinger mixer\nwakes up.\n\nA consequence of this change is that audio HALs or pcm drivers do not have to hold wake locks\nanymore as in the past.\n\nChange-Id: I4fb3cc84816c9c408ab7fec75886baf801e1ecb5\n"
    },
    {
      "commit": "9e18fd1a72ceca43ffd8bc50476a05e236b38b08",
      "tree": "e82a4418007ef2a45d5a62019f30b20cbff81bb7",
      "parents": [
        "8969d9924c662ab4cdacc342bbdc33756db730be"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon May 02 17:51:29 2011 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Wed Jun 22 10:15:32 2011 -0700"
      },
      "message": "Permissions to protect bandwidth statistics.\n\nIntroduces new \"net_bw_stats\" group which will protect reading\ndetailed bandwidth statistics from the kernel.  Also introduce\n\"net_bw_acct\" group which will enable specific applications to\nrequest that their network traffic be counted against other UIDs.\n\nThis change associates manifest permissions with the low-level GIDs.\n\nChange-Id: If3fc28053afda201ff305d798a8878ff1f35b997\n"
    },
    {
      "commit": "8643aa0179e598e78d938c59035389054535a229",
      "tree": "c1d0ab0f77329fb34231e45703687d21a601fc88",
      "parents": [
        "219451363d7c9e657cb856bebce34bc29d7876fa"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 20 12:12:33 2011 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Jun 06 18:46:03 2011 -0700"
      },
      "message": "Interrogation of the view hierarchy from an AccessibilityService.\n\n1. Views are represented as AccessibilityNodeInfos to AccessibilityServices.\n\n2. An accessibility service receives AccessibilityEvents and can ask\n   for its source and gets an AccessibilityNodeInfo which can be used\n   to get its parent and children infos and so on.\n\n3. AccessibilityNodeInfo contains some attributes and actions that\n   can be performed on the source.\n\n4. AccessibilityService can request the system to preform an action\n   on the source of an AccessibilityNodeInfo.\n\n5. ViewAncestor provides an interaction connection to the\n   AccessibiltyManagerService and an accessibility service uses\n   its connection to the latter to interact with screen content.\n\n6. AccessibilityService can interact ONLY with the focused window\n   and all calls are routed through the AccessibilityManagerService\n   which imposes security.\n\n7. Hidden APIs on AccessibilityService can find AccessibilityNodeInfos\n   based on some criteria. These API go through the AccessibilityManagerServcie\n   for security check.\n\n8. Some actions are hidden and are exposes only to eng builds for UI testing.\n\nChange-Id: Ie34fa4219f350eb3f4f6f9f45b24f709bd98783c\n"
    },
    {
      "commit": "ec9b5d17af1199e418b7352313575f0f7288b550",
      "tree": "1b8f7ca979feb31835b2332df0cc9c66a836ae0b",
      "parents": [
        "50a2f8f66173ebafdfe961c73aad4fd22e164b52",
        "ee081bf5ee936396a89d5bd2b29487047b260f49"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue May 03 16:36:36 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 03 16:36:36 2011 -0700"
      },
      "message": "am ee081bf5: am 3ed0a1ec: Merge \"IMS: Provide net_admin permission so that IPSec could be configured/used.\" into honeycomb-LTE\n\n* commit \u0027ee081bf5ee936396a89d5bd2b29487047b260f49\u0027:\n  IMS: Provide net_admin permission so that IPSec could be configured/used.\n"
    },
    {
      "commit": "0e7b5a0287ef4a3dde2b29b4a2421679f88965e0",
      "tree": "d0bf7c7cc0f1e834a196706a974183a62e9b8bb6",
      "parents": [
        "d0d44c4e988ecdea86c2bb04e29d8f6d20c1c631"
      ],
      "author": {
        "name": "Ramesh Sudini",
        "email": "ramesh.sudini@motorola.com",
        "time": "Mon Mar 28 09:18:31 2011 -0500"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Tue May 03 13:46:08 2011 -0700"
      },
      "message": "IMS: Provide net_admin permission so that IPSec could be configured/used.\n\nIMS configures the security database in kernel with keys generated from ISIM.\n\nChange-Id: Iae9fb85f286ff2a627369d784a127bf7d4d8f4b3\n"
    },
    {
      "commit": "1e23db4c2f5a6eba37a786e4390d52fe2012bfae",
      "tree": "49f97dc509feddd80ee6c0705f7e78af23620f64",
      "parents": [
        "9df53fae3afd1c6b5278216be2fd33a255602aef"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 22 07:05:21 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Apr 22 07:11:20 2011 -0700"
      },
      "message": "Revert \"Remove permission android.permission.WRITE_MEDIA_STORAGE\"\n\nWe need this to allow MTP to access secondary external storage devices\n\nThis reverts commit 35a2ea2fbf156a503d1b0bc6ca7784e51e2462f4.\n\nConflicts:\n\n\tdata/etc/platform.xml\n\nChange-Id: I9faf54526182a786a1c0ca1fd01a09baabca186d\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "97d7e4c227ca26c125c1b587c5ed04ab82d0f4e1",
      "tree": "f2c8451cde823f3a0782d90e4d9f80ceec1213e5",
      "parents": [
        "e7d511e148bc901ef41ac44d7b3593e5d803f72f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Jan 07 12:37:54 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat Jan 22 15:56:09 2011 -0800"
      },
      "message": "Make ACCESS_USB permission for applications to access USB devices:\n\n- change from signatureOrSystem to normal\n- no longer associate this permission with the \"usb\" unix group\n- add to public API\n\nChange-Id: I3be3a5d138719dd126ff0a798824a77f9ce79e24\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "35a2ea2fbf156a503d1b0bc6ca7784e51e2462f4",
      "tree": "637128a638b5607184c1ed1340fbef2a978cbe34",
      "parents": [
        "92a9a3c5ef9774863b4cee93d43b67582a02c2f0"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jan 12 11:48:01 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jan 12 12:48:13 2011 -0500"
      },
      "message": "Remove permission android.permission.WRITE_MEDIA_STORAGE\n\nAccess to the /data/media directory is now restricted exclusively to the\nsdcard daemon, so there is no longer a need for this permission.\n\nChange-Id: Iea8400f0eee167df19cc231c502d251a364f98b3\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "10bc1114f37d9edb3f153ec209745dd476530325",
      "tree": "23daad428364b52785b352b85afbaf7b6ab690eb",
      "parents": [
        "8b50495d02a6423bfa5c8cf6406e3e06b7c84f7f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jan 10 08:24:08 2011 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jan 10 08:54:34 2011 -0500"
      },
      "message": "Add separate permission and group for access to the MTP USB driver\n\nSince the \"usb\" group and ACCESS_USB permission will be used by regular apps\nto access USB devices in host mode, we need a separate permission for the\ndevice side MTP driver.\n\nChange-Id: Id03f7c4f3d2712c489b4b74cf17a72a182084501\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "3f425a6be47b706349f17679ed2b6877179df1cc",
      "tree": "bb2bf12795fe2eb17917226b67a4891c11f90f9f",
      "parents": [
        "84aaec86f5f0cc24a9bdd936597601eadf2247dd"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Oct 29 11:53:39 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri Oct 29 19:16:45 2010 -0400"
      },
      "message": "Add new WRITE_MEDIA_STORAGE permission to control write access to /data/media\n\nBUG: 3113970\n\nChange-Id: Idb56be76729dc560dee5f680225cf4050f2751d2\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8f5edc93b622bbdc33db24d348480fd7d55afb41",
      "tree": "ee04837e6ce2587daec5e508d02bb344f97d9eaa",
      "parents": [
        "0ed0221e9c01753eb8cf312ea9d148a0097a99a1",
        "840f0fecd87357cadf4b2a0ae96d30b457f89729"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 01 22:55:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 01 22:55:04 2010 -0700"
      },
      "message": "am 840f0fec: am d3efa392: Clean up some permissions.\n\nMerge commit \u0027840f0fecd87357cadf4b2a0ae96d30b457f89729\u0027\n\n* commit \u0027840f0fecd87357cadf4b2a0ae96d30b457f89729\u0027:\n  Clean up some permissions.\n"
    },
    {
      "commit": "d3efa3924407da6d38aa5931ac29aa088d9eb986",
      "tree": "105f4a08e32468c8fa20d981867b6e8fd688cd4e",
      "parents": [
        "bc5ec2f91a7ed2836df66f1ed98b019ea1192aa1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 01 17:34:12 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 01 21:19:40 2010 -0700"
      },
      "message": "Clean up some permissions.\n\nNote that WRITE_OWNER_DATA and READ_OWNER_DATA don\u0027t actually appear\nto be associated with anything or used by anyone, so they are just\ndeleted.\n\nAlso deprecate the activity API to go in the foreground.  I didn\u0027t\nrealize that was released in the SDK.  It needs to go away.\n\nChange-Id: I96f53702c2c79e4999b6b2c498abb770bd27e03a\n"
    },
    {
      "commit": "31ac8e9d56d121e276f0c9e2359c28fefb3e80cf",
      "tree": "342c94cdf33521ac3448e153501a550b90ec6ce8",
      "parents": [
        "91882c4731e9b9fffee14f41011202d26c207e3a"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 10 18:26:40 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 11 08:29:19 2010 -0400"
      },
      "message": "Add new permission android.permission.ACCESS_USB to allow access to USB devices\n\nChange-Id: Ib3dd573a5ef3950d20b21251fe7a3efad56b5c1f\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "527f015b9a99b64a20bcbfe6aad78e815365c760",
      "tree": "ee54b725ea4e4e64bd45c13716e3c9f4cb742ab0",
      "parents": [
        "5f5989de7cac3583a2217b03e9661d2abb1a1d70"
      ],
      "author": {
        "name": "Scott Su",
        "email": "scott.su@myriadgroup.com",
        "time": "Thu Aug 20 22:34:55 2009 +0800"
      },
      "committer": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Sat Aug 22 10:48:23 2009 -0700"
      },
      "message": "Remove the decleration of com.android.im.plugin.jar in platform.xml\nAdd a column definition for keep_signed_in when query the active account with a given provider\n"
    },
    {
      "commit": "05ff98bbefda39b9ff26f8bca132cfd0248745c6",
      "tree": "dd7399785790ece3f34d1725972f1a0a128cf4df",
      "parents": [
        "c047d68372ece9fa74446b13ea66bc12b060b882"
      ],
      "author": {
        "name": "Tao Liejun",
        "email": "L.J.Tao@motorola.com",
        "time": "Mon Jul 13 15:57:11 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Tue Jul 14 21:20:39 2009 -0700"
      },
      "message": "Fix minor obex bugs and re-format the comments\n\nre-format comments\nmove connectible to connectable\nremove unnecessary throws\nremove not-used function ClientOperation.readResponse()\nfix client abort case for PUT\nset mOpen for PrivateOutputStream\nadd to platform.xml\n"
    },
    {
      "commit": "de83ab9fce4d02ddfde785e193bc787497d45138",
      "tree": "94a227fb89320799f7742323c27d0e7ec723db06",
      "parents": [
        "334a67740c9f7f35fa9ee93cf0f8051d41ce2d7a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Jul 14 15:38:07 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Tue Jul 14 15:38:07 2009 -0700"
      },
      "message": "Grant adb the BACKUP permission\n\nThis also means we should no longer do explicit calling-identity fiddling in\ndump(), relying instead on the usual permission enforcement mechanism to handle\nthings.\n"
    },
    {
      "commit": "aeb049ce8b782cadc1690d6339af4afe722817d1",
      "tree": "212d9785ded1c8ae9c1af2b8270ac409efb540e5",
      "parents": [
        "831ea07dabf6331b7a410971eb85b2ae72239b50"
      ],
      "author": {
        "name": "Bob Lee",
        "email": "crazybob@google.com",
        "time": "Wed Jul 08 11:22:01 2009 -0700"
      },
      "committer": {
        "name": "Bob Lee",
        "email": "crazybob@google.com",
        "time": "Wed Jul 08 11:22:01 2009 -0700"
      },
      "message": "Removed reference to awt jar from platform.xml.\n"
    },
    {
      "commit": "5a3a77dabd744d5be79d7745c2a977c108a9ad98",
      "tree": "2c5ad40a1c6c967839c60f91542eb99ca599502e",
      "parents": [
        "181fafaf48208978b8ba2022683ffa78aaeddde1"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Jun 01 09:25:28 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Jun 01 09:25:28 2009 -0700"
      },
      "message": "base: Rename WRITE_SDCARD -\u003e WRITE_EXTERNAL_STORAGE\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "627e7b50be41e4fdee758a1bfad3a55de56b4e27",
      "tree": "de5c88b60ad0f5454956eb457090958ebb9fc331",
      "parents": [
        "384bfa270cdcb5dc3bc9ec396b783e25eb2d9b4d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 19:21:59 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 21 19:21:59 2009 -0700"
      },
      "message": "split boot animation out of SurfaceFlinger\n\nConflicts:\n\n\tdata/etc/platform.xml\n"
    },
    {
      "commit": "fd6e5f0dda50e113db4ccc55338b6c4f09da37a4",
      "tree": "faf8e2c6510d2a0c4439cdcdfe74d97100dc9020",
      "parents": [
        "bb7b7b316a6a15f4df6af3c62a293920c68c7b00"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 21 11:28:20 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 21 11:28:20 2009 -0400"
      },
      "message": "location: Replace ILocationCollector interface with new ILocationProvider method\n\nThis change replaces ILocationCollector with a more general mechanism that\npasses locations received from a provider to all other providers.\nThe network location provider now uses this to implement the location collector.\nIn the future, this could be used to inject network locations to the GPS\nas aiding data.\n\nThis change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3d",
      "tree": "75e0804e6628f9bb818c5f6f918315640c721d4b",
      "parents": [
        "ba2a3a1b32e242eea4e97c927d886e8987fde3d4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 13 15:06:13 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 15 18:02:47 2009 -0700"
      },
      "message": "Implement compatibility support for WRITE_SDCARD permission.\n\nNow old applications will automatically be granted it.  Also renamed it from\nSDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,\nand re-arranged how we do targetSdkVersion to actually be usuable for this\nkind of stuff.\n\nNote that right now this results in basically all apps being given the\nWRITE_SDCARD permission, because their targetSdkVersion is not set.  I will\nbe dealing with that in a future change.\n"
    },
    {
      "commit": "29b57e63e54321f99ff086bb25439098d83292f6",
      "tree": "fdfa6d571cc8cbaf418f70d2e25cd638f939b50f",
      "parents": [
        "44ff0514c2c8b8917ef81182c8f9d84a1617ec57"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Apr 23 09:18:32 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Apr 23 11:40:17 2009 -0700"
      },
      "message": "API_CHANGE: external_storage: Add SDCARD_WRITE permission with associated strings\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "9066cfe9886ac131c34d59ed0e2d287b0e3c0087",
      "tree": "d88beb88001f2482911e3d28e43833b50e4b4e97",
      "parents": [
        "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:31:44 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d83a98f4ce9cfa908f5c54bbd70f03eec07e7553",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "076357b8567458d4b6dfdcf839ef751634cd2bfb"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:45 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "d24b8183b93e781080b2c16c487e60d51c12da31",
      "tree": "fbb89154858984eb8e41556da7e9433040d55cd4",
      "parents": [
        "f1e484acb594a726fb57ad0ae4cfe902c7f35858"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:44:00 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "b798689749c64baba81f02e10cf2157c747d6b46",
      "tree": "da394a395ddb1a6cf69193314846b03fe47a397e",
      "parents": [
        "f013e1afd1e68af5e3b868c26a653bbfb39538f8"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:51:23 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\n"
    },
    {
      "commit": "54b6cfa9a9e5b861a9930af873580d6dc20f773c",
      "tree": "35051494d2af230dce54d6b31c6af8fc24091316",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
