)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
