)]}'
{
  "log": [
    {
      "commit": "24713907fe4632d263aea82f7a35c8fb08918a09",
      "tree": "fbf80caed2388c579d64b20b86b9b9f2586b1640",
      "parents": [
        "26ea2e5df58edfd14717c86854f6bb99975b6a77"
      ],
      "author": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Thu Jul 26 14:07:53 2012 -0700"
      },
      "committer": {
        "name": "rich cannings",
        "email": "richc@google.com",
        "time": "Thu Aug 02 11:26:47 2012 -0700"
      },
      "message": "Pass URLs to package verifiers\n\nThis change passes the originating URL and accompanied referrer to\npackage verifiers, when available.\n\nBug: 6544677\nChange-Id: If9ff6663ad7f3426b7aea2aceb1413b689788138\n"
    },
    {
      "commit": "437a0fbd57662e1d9d260da6f62ff83da2769a7e",
      "tree": "7df1f02b3bcc2d3fc4e22926e55c33e712879419",
      "parents": [
        "a7ce1551a6c05d4f983e283b413cadb1ddc1026d",
        "59c009776dae5ccbdfb93d7151ff2065ca049dc3"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 02 09:20:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 02 09:20:14 2012 -0700"
      },
      "message": "Merge \"Introduce multiple displays with DisplayContent.\" into jb-mr1-dev"
    },
    {
      "commit": "59c009776dae5ccbdfb93d7151ff2065ca049dc3",
      "tree": "45ffbc8d93e8f245ed1c78ffa64b8bcc5ae59355",
      "parents": [
        "fa14d824d235c33b137a429c3eb6818f273407ab"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jul 30 12:10:24 2012 -0700"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Aug 02 08:47:44 2012 -0700"
      },
      "message": "Introduce multiple displays with DisplayContent.\n\nFix a couple of bugs that turned up.\nRemove touch/focus from display. Add iterators for access.\nRespond to comments. Remove TODOs, and some deviceId parameters.\n\nChange-Id: Idcdb4f1979aa7b14634d450fd0333d6eff26994d\n"
    },
    {
      "commit": "00efe44923af27094cfc201064ed920f93b0bde0",
      "tree": "262eca9afafe36ecd55ee4e2202466244e7b4acd",
      "parents": [
        "36b536be60b48ba119c85d7c4a1bed41a30fb4b1",
        "b3e4b46db028c35d6d12c5f8f25b0463833fb51d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 31 09:36:17 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 31 09:36:17 2012 -0700"
      },
      "message": "am b3e4b46d: am e583bcf1: Merge \"Explicitly set lib dir permissions during unlink\" into jb-dev\n\n* commit \u0027b3e4b46db028c35d6d12c5f8f25b0463833fb51d\u0027:\n  Explicitly set lib dir permissions during unlink\n"
    },
    {
      "commit": "b3e4b46db028c35d6d12c5f8f25b0463833fb51d",
      "tree": "ac0814988205812fd5d4c538485316c982d843d3",
      "parents": [
        "5dcbe638ee063201fb476ef475d2beb347f02097",
        "e583bcf13c13957bdf20f8bc5e23258b083b2f51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Jul 31 09:34:26 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 31 09:34:26 2012 -0700"
      },
      "message": "am e583bcf1: Merge \"Explicitly set lib dir permissions during unlink\" into jb-dev\n\n* commit \u0027e583bcf13c13957bdf20f8bc5e23258b083b2f51\u0027:\n  Explicitly set lib dir permissions during unlink\n"
    },
    {
      "commit": "515087d1c586c6c24222e03bbd01af58bdf0ed8d",
      "tree": "32a8c08ba2b38f4a7e4bdc9c0c458602b23a30b1",
      "parents": [
        "47db02bad8fed67025669c41ef0c0dd9cafe7ed2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 30 15:00:16 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jul 30 15:01:20 2012 -0700"
      },
      "message": "Explicitly set lib dir permissions during unlink\n\nThe default umask changed, so we have to explicitly set the mode of the\nlib directory when we create it in unlinklib.\n\nBug: 6857022\nChange-Id: I06fc3f29e99d686bbbb96184d8c314d4cc57e9fe\n"
    },
    {
      "commit": "92c6d2fc50ec2a33a2a990fe66cd70090eb461ca",
      "tree": "cb5238dfab2eaf2e7cbe6775415c30219533e204",
      "parents": [
        "aa871b0ff0fb38112a1693e80e1146cecc5db21d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 25 19:22:59 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 25 20:38:27 2012 -0700"
      },
      "message": "update to new getDisplayInfo API\n\nChange-Id: I8051b4f9f23d3ef4791176de1bbcfafacae7d579\n"
    },
    {
      "commit": "b8acd060d409f0e81ab3510b429cb86d3f34adb8",
      "tree": "c962d2494558d8805147879ef7e6d6d81eae8f00",
      "parents": [
        "a56d273438036d79e770efd0e436449534ee8b9b",
        "fa6e1ea773a74aa6a996a783ff16c495ab3cc822"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jul 20 10:00:45 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 20 10:00:45 2012 -0700"
      },
      "message": "am fa6e1ea7: am 2c932143: Merge \"s/LOG/ALOG/ in HAVE_SELINUX blocks\"\n\n* commit \u0027fa6e1ea773a74aa6a996a783ff16c495ab3cc822\u0027:\n  s/LOG/ALOG/ in HAVE_SELINUX blocks\n"
    },
    {
      "commit": "1abb1cb3a8fe17f7866150604c2fd73751da787e",
      "tree": "a2f4fa365665fc5b25fc66c6f7b90ea3ca719cfc",
      "parents": [
        "34196187365687d3f144a6de5fef811b52545ac0"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Wed Jan 25 16:14:50 2012 -0800"
      },
      "committer": {
        "name": "Matthew Xie",
        "email": "mattx@google.com",
        "time": "Fri Jul 13 22:22:51 2012 -0700"
      },
      "message": "Changes to Bluetooth Service structure.\n\nChanges to make Bluetooth Service part of the system_service.\nThese changes may be temporary.\n\nChanges to update to the new disable API.\n\nChange-Id: If89dba17e6e6c6daa53c37684221763a2da076e9\n\nConflicts:\n\n\tservices/java/com/android/server/pm/PackageManagerService.java\n"
    },
    {
      "commit": "197a0c82a1fbf337ec0a85d36b6b89c3d6e8a0ac",
      "tree": "91ddac285a05fd389615ed6fab622d65b4bf2cee",
      "parents": [
        "9c469ca0ff92ffa533faed9416d725be2204ed55"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 12 14:46:04 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jul 12 14:46:04 2012 -0700"
      },
      "message": "Improve cleanup of file caches.\n\nThis rewrites installd\u0027s code for deleting cache files to be better:\n\n- Isn\u0027t really stupid about just deleting directories in the order\n  they are found on the filesytem; now collects all cache files and\n  sorts them by mod time to determine which to delete.\n- Also deletes cache files in /data/media and for all users.\n\nThis also tweaks DeviceStorageMonitor to be a little smarter about\ndeciding when to flush cache files, having upper and lower limits\nthat it allows memory to get down to and then flash files to reach\nthe higher free storage limit.  This should reduce the amount that\nwe perform flushing when starting to reach the storage limit.\n\nFinally add a new pm command to force a cache flush.\n\nChange-Id: I02229038e1ad553d1168393e5cb6d5025933271d\n"
    },
    {
      "commit": "365861e3aae9cccdb19b8d4ee375c57e0a431f1e",
      "tree": "7684a611694772d9322ef44b138e316542482665",
      "parents": [
        "13a3a87fa7264df29a1f698ce80ada2de3561962"
      ],
      "author": {
        "name": "Joshua Brindle",
        "email": "jbrindle@tresys.com",
        "time": "Tue Jul 10 10:22:36 2012 -0400"
      },
      "committer": {
        "name": "Joshua Brindle",
        "email": "jbrindle@tresys.com",
        "time": "Tue Jul 10 11:02:01 2012 -0400"
      },
      "message": "s/LOG/ALOG/ in HAVE_SELINUX blocks\n\nThe latest push changed LOG(E|V) to ALOG(E|V) but it was not updated in HAVE_SELINUX blocks.\n\nChange-Id: I626588589dd00775ba29f2a256ac29e481598dc3\nSigned-off-by: Joshua Brindle \u003cjbrindle@tresys.com\u003e\n"
    },
    {
      "commit": "4f741c3c2234ef8fec39ca71f6c22b875a3cd3eb",
      "tree": "fb73c37fdc92fdd2cf04130326dda3753b8df348",
      "parents": [
        "664089112503b182c080296cc4c8fca4afe8538b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 28 14:55:55 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 28 15:10:44 2012 -0700"
      },
      "message": "move sensorservice to the frameworks/native project\n\nChange-Id: I285c190904b2b6b92df3e40154d178407a712f6e\n"
    },
    {
      "commit": "8b3895392662640b84d3e2bbadb0bc53c456cea5",
      "tree": "9722e370b7c76334ca484e3c911c9664c108225c",
      "parents": [
        "3a9ff158fe45b3ee986dfa5f3c56fa48f781a5a9",
        "06c93386374de3812629908f21c057a8d60c4b12"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 20 13:37:13 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 20 13:37:13 2012 -0700"
      },
      "message": "am 06c93386: Merge \"Exit boot animation cleanly.\" into jb-dev\n\n* commit \u002706c93386374de3812629908f21c057a8d60c4b12\u0027:\n  Exit boot animation cleanly.\n"
    },
    {
      "commit": "d3782b26b2026e60a8e0d4b967a156369f2a46f8",
      "tree": "4cdd65f7346993aea94bedf15fbd91e910b74b33",
      "parents": [
        "fe54cb6f3da7fe95d5141d97b0c6780e001ad058"
      ],
      "author": {
        "name": "Kevin Hester",
        "email": "khester@google.com",
        "time": "Thu Apr 26 10:38:55 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 19 17:38:43 2012 -0700"
      },
      "message": "Exit boot animation cleanly.\n\nThe desc.txt file can now mark parts as \u0027must finish cleanly\u0027 by using\n\u0027c\u0027 as the part line prefix rather than \u0027p\u0027.  If so indicated, if the\nbootanimation is asked to quit it will do so only after waiting to\nfinish that part.\n\nI considered either making init.c service killing smarter or promoting\nbootanim to be a bindable service with a requestExit method.  However,\nthese changes are probably too big/risky given our ship date.  So\nI used a property as a mailbox between SurfaceFlinger and bootanim.\n\nBug: 6679877\nChange-Id: I1f8dd9e7da1ea80a483b31fa14c4a5645922d774\n"
    },
    {
      "commit": "39758edbed0be8f3d75427f750db6e9d005cd16a",
      "tree": "3a475ef1a8294bf6492d7e4d904149fe0bcd4720",
      "parents": [
        "56b3a321e7c6f03d1bc0c5c0915d56bc46b7a33e",
        "386ce58a21b81390d2831b0f1107d03773af687a"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jun 18 16:51:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 18 16:51:41 2012 -0700"
      },
      "message": "am 386ce58a: Merge \"Don\\\u0027t backup or delete the backup file, if it\\\u0027s in the backup path.\" into jb-dev\n\n* commit \u0027386ce58a21b81390d2831b0f1107d03773af687a\u0027:\n  Don\u0027t backup or delete the backup file, if it\u0027s in the backup path.\n"
    },
    {
      "commit": "386ce58a21b81390d2831b0f1107d03773af687a",
      "tree": "8e117be0756c7fb0621edcaeb78cbfb25f596602",
      "parents": [
        "1991850de7bbcc534c2cb457f33055c533542136",
        "0ba48a5402926b23f2459ce5039d3fe75938c0f4"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jun 18 16:49:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 18 16:49:28 2012 -0700"
      },
      "message": "Merge \"Don\u0027t backup or delete the backup file, if it\u0027s in the backup path.\" into jb-dev"
    },
    {
      "commit": "0ba48a5402926b23f2459ce5039d3fe75938c0f4",
      "tree": "92cd80c7ba68b92d95e08f1fe201c0f6b017eb67",
      "parents": [
        "1c9581023ced89a209fca9c4e40305f8e0859732"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jun 18 13:04:27 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Mon Jun 18 13:04:27 2012 -0700"
      },
      "message": "Don\u0027t backup or delete the backup file, if it\u0027s in the backup path.\n\nChange-Id: Ie77782722a271e09f8cbde7fb5393e8127d4334d\n"
    },
    {
      "commit": "33ef4ee71277888304a3c67fdd8dfddd728b4c88",
      "tree": "801ef4c7dd0c1aad76254717e10d4d2d0c4c99da",
      "parents": [
        "98e955d295441636ba19688e18a8223691256d2c",
        "4de60b26091b269c22803297c88b66ca5e3aed5f"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jun 18 10:26:36 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jun 18 10:26:36 2012 -0700"
      },
      "message": "resolved conflicts for merge of 4de60b26 to jb-dev-plus-aosp\n\nChange-Id: Id1b1847a3ab5c0f51ac8a732fce5ba12e5810259\n"
    },
    {
      "commit": "4503cf67b57a2a75e86ce4e36ccb69249048c996",
      "tree": "fefc9f47f15765a3bc1511a208def1aaa917f430",
      "parents": [
        "963218905ab31ccd2cf7ff57d372b185624543a4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jun 14 13:05:18 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jun 14 15:28:37 2012 -0700"
      },
      "message": "Make lib dir before changing ownership of app dir\n\nBug: 6668897\nChange-Id: I8998a50359892277b15e80b5b5590ff94b125467\n"
    },
    {
      "commit": "11d536b38116e72a40829bd976f9f78f50d53d1a",
      "tree": "6fb646a6ea6de65b0b62a4c8318410fd0dd8b0cd",
      "parents": [
        "2e1f18b9ba9af40d5e1f0874e091b8f487a2d50d",
        "ceb8067920043a430478be386c56c244355d4c9f"
      ],
      "author": {
        "name": "Justin Ho",
        "email": "justinho@google.com",
        "time": "Tue Jun 12 12:45:46 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 12 12:45:46 2012 -0700"
      },
      "message": "am ceb80679: Merge \"make the boot animation 32-bits to avoid banding\" into jb-dev\n\n* commit \u0027ceb8067920043a430478be386c56c244355d4c9f\u0027:\n  make the boot animation 32-bits to avoid banding\n"
    },
    {
      "commit": "60691ce1600cb79ec9bb9957eee29be7a6a5e5d2",
      "tree": "644c7b8e65eab2cc4f74192bbd18a2d816118159",
      "parents": [
        "0d8eba64b2ee2921915e0f6793ddd2d8f44e2428"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 11 14:08:02 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 11 14:52:32 2012 -0700"
      },
      "message": "make the boot animation 32-bits to avoid banding\n\nBug: 6611693\n\nChange-Id: Id31b711ea755c89240eaea26f6403a031cd939e4\n"
    },
    {
      "commit": "3a3c7e7bc4f599c35f5ed4feeead15c6c5a4621f",
      "tree": "84d266d0090e6d85fcf469e686a40dd9b35fd91c",
      "parents": [
        "d26f7139a7ff42ca1be470657515767f7509955b",
        "63dd4c65c41187967ba0828d386117f90020840e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Fri Jun 08 14:01:54 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 08 14:01:54 2012 -0700"
      },
      "message": "am 63dd4c65: am 60b3d59d: Merge \"Modify installd to set the SELinux security context on package directories.\"\n\n* commit \u002763dd4c65c41187967ba0828d386117f90020840e\u0027:\n  Modify installd to set the SELinux security context on package directories.\n"
    },
    {
      "commit": "60b3d59d7f788046a45a5fd4e97ec7235fb55787",
      "tree": "3a368d16fee045adf83a1a870b267b82ed5c6de8",
      "parents": [
        "7b2d056342176b5e7ff19842fc9202f2f8d36b76",
        "0b58e6a1a97eded73cb9cbbe53cdde4c6595ddd6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Fri Jun 08 12:27:41 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 08 12:27:42 2012 -0700"
      },
      "message": "Merge \"Modify installd to set the SELinux security context on package directories.\""
    },
    {
      "commit": "d0c5f515c05d05c9d24971695337daf9d6ce409c",
      "tree": "bce8b771249be92852eb2914c0d8927ee4ab18ab",
      "parents": [
        "0646411cbd91039e843c0f3067ea0a379176978a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 07 16:53:59 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 07 16:57:57 2012 -0700"
      },
      "message": "Fix issue #6295373: \"Package com.google.android.apps.authenticator2 has...\n\n...mismatched uid: X on disk, Y in settings\" errors on Froyo and Gingerbread\n\nDeal more gracefully with the uid changing in three ways:\n\n1. If the uid on disk has become root, then have installd change it to\n   the application\u0027s uid.  This is to correct a potential case where\n   installd was interrupted while linking or unlinking the libs dir,\n   during which it temporarily changes the owner of the dir to root\n   so that a malicious app can not get in its way.  So if the uid on\n   disk has become root, we assume we can safely just change it back\n   to the correct uid.\n\n2. When scaning packages at boot, use the same \"delete and rebuild data\n   directory\" code for third party applications as we have for system\n   applications.  This allows us to at least end up in a state where the\n   app will run, even if its data is lost.\n\n3. But we really don\u0027t want to get in to case 2, so if an application\n   update is being installed and we find that the uid we now have for\n   the app is different than the one on disk, fail the update.  This will\n   protect against for example a developer changing the sharedUserId of\n   their app and getting into this bad state.\n\nBug: 6295373\nChange-Id: Ic802fdd818ac62449ff3c61d1fff1aa4d4942f39\n"
    },
    {
      "commit": "fd3d009dde21d7670d42d26f197f67c4c8e59184",
      "tree": "7e91bd87dcab0b4e6e470400924ce9e657642259",
      "parents": [
        "5ab6e12b450d13c8eb501001c7a8669826b86ea4"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed May 30 17:57:06 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed May 30 17:57:06 2012 -0700"
      },
      "message": "Remove some unnecessary man page entries\n\nChange-Id: I1ceda3f5efac83b80ab4b6e7cae4086aeed5062a\n"
    },
    {
      "commit": "13b907353f18215b52b5ceda24bbf520d91d72a1",
      "tree": "5b32cdf7b5729f68c0b61dadbeab7ffd263b25b0",
      "parents": [
        "d7e4ae48c576d5aaef75754b29a8b87c1f0d6427"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 21 12:13:31 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 21 13:29:06 2012 -0700"
      },
      "message": "Remove unused, obsolete debug code\n\nAll these features have either been abandonned and left un-maintained\nfor years or can be replaced by systrace.\n\nChange-Id: I42e4579a8078744047e5fe08a7a15254970b09bc\n"
    },
    {
      "commit": "db7dd2af93ae96e5749cfbe978c2695049d9d782",
      "tree": "43e6441ce2d9edab412fc3faf19cc4ab9e967455",
      "parents": [
        "26511012c40dbe704f4791654b28b9e0e05589d8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat May 12 15:08:21 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat May 12 15:08:21 2012 -0700"
      },
      "message": "fix BootAnimation timing\n\nWe were including the delay of the previous frame when\ncalculating the delay needed between a frame and the next.\nThis caused a bad jitter in the animation timing.\n\nWe also now use clock_nanosleep().\n\nChange-Id: Iebb8cca4d57fe2f11d83b23a736e03db7a7d2006\n"
    },
    {
      "commit": "995cb9739a04e7fe20c0a86c400db706b12cb221",
      "tree": "9c4ccaa5078ccd3891dd0f90a536cfbd326c9806",
      "parents": [
        "b3e9ee23795e6c7c4bc2c0a7e776b7ee34e8f08e",
        "ca13fed08bf38c2f2811b3ec3f995d0ca57ac6ac"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 17:35:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 09 17:35:28 2012 -0700"
      },
      "message": "Merge \"Empower the \u0027input\u0027 command with keycode labels.\" into jb-dev"
    },
    {
      "commit": "ca13fed08bf38c2f2811b3ec3f995d0ca57ac6ac",
      "tree": "a9abe1bce747df20cc0eacfb2207d3b86f557415",
      "parents": [
        "7873d5b3ff587ffff33dae628aaa581b099db61e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 17:18:20 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed May 09 17:18:20 2012 -0700"
      },
      "message": "Empower the \u0027input\u0027 command with keycode labels.\n\nChange-Id: Ia077f8ee0732599cec9b04efc2f828d3d22f5bac\n"
    },
    {
      "commit": "ceb1b0bfaea56251796b08c07b963de7403d84eb",
      "tree": "fea73b05f6b4d47da174eca362693958cf5d785a",
      "parents": [
        "476b03b0c0d5cae4d1b114c6f80858d59ba36cad"
      ],
      "author": {
        "name": "Anonymous Coward",
        "email": "nobody@android.com",
        "time": "Tue Apr 24 10:35:16 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon May 07 16:34:49 2012 -0700"
      },
      "message": "Add encryption parameters to package installation\n\nChange-Id: Ic9f8ab9f8110f08bb3c00725cfce5b8ee7b766f3\n"
    },
    {
      "commit": "7fdde0cee2ac90da6603585f4789644fbf00925d",
      "tree": "198d946ccee07b288a5a33733c93694e18584e48",
      "parents": [
        "c9ca7f38bccfa56bbca44998758869ec8c71f4d3",
        "f0e3edc0709dc190190e0ca386478f4a0da92e7a"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 01 15:47:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 01 15:47:28 2012 -0700"
      },
      "message": "Merge \"remove extra semi colon\" into jb-dev"
    },
    {
      "commit": "f0e3edc0709dc190190e0ca386478f4a0da92e7a",
      "tree": "69149266c611bfceb1c26e1e1dcad4253c9c8c86",
      "parents": [
        "6113ce3be4ba7208bac7d9f0cad7e83104dbc8d3"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Apr 30 18:29:23 2012 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Apr 30 18:29:23 2012 -0700"
      },
      "message": "remove extra semi colon\n\nEclipse has been complaining about it...\n\nChange-Id: I39fb4eeab26af883dd2287baf49ec244db453365\n"
    },
    {
      "commit": "719a6320a789e76566d6416d5ec35491d21f5c44",
      "tree": "3054ec8d31d3c2cd1936667aaeac46ae257109f5",
      "parents": [
        "263d044c790923d7d83ab036e79a3decc25c7b4d"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 30 13:46:54 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Apr 30 13:46:54 2012 -0700"
      },
      "message": "Change permission enforcement through pm command.\n\nAdd \"set-permission-enforced\", which can currently only mutate\nenforcement of READ_EXTERNAL_STORAGE.\n\nBug: 6363043\nChange-Id: I3f7929738c8c36b0a54fbf171c03fe16c09b5d99\n"
    },
    {
      "commit": "59d3d868112f8bbd14f466d0096789548b176d34",
      "tree": "492208b0e399efd666d2385e5a96c2e732609642",
      "parents": [
        "7725180c646d1976a2a2097735862a75ec47c544"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 27 10:06:16 2012 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 27 10:06:16 2012 -0700"
      },
      "message": "Add Usb control to svc.\n\nWe used to have control over usb via ndc but recent changes removed that.\nThe reverse_tether.sh script needs control (on rooted devices) to run\nso added this.\n\nbug:4208971\nChange-Id: I722fc0e14540890be0d79a0b7d22f23b2d57f20c\n"
    },
    {
      "commit": "fd135bc809589d4cadcdbcc7ececaf2d9d0969cf",
      "tree": "6605529aca5a347b7cc728b6af89d5c9e9671aac",
      "parents": [
        "4961295d19e27dd0854f2b07ae126f79ce935c8c",
        "f4b6628e5084bf317eab5326c51cbecb8fabdc45"
      ],
      "author": {
        "name": "Travis Geiselbrecht",
        "email": "travisg@google.com",
        "time": "Tue Apr 24 14:23:25 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 24 14:23:25 2012 -0700"
      },
      "message": "am f4b6628e: BootAnimation: fix bug to delay the appropriate amount of time per frame\n\n* commit \u0027f4b6628e5084bf317eab5326c51cbecb8fabdc45\u0027:\n  BootAnimation: fix bug to delay the appropriate amount of time per frame\n"
    },
    {
      "commit": "f4b6628e5084bf317eab5326c51cbecb8fabdc45",
      "tree": "192b53b1e8acf2ccaa56f15d95270658e4a934aa",
      "parents": [
        "5c84720322afaae4f4a7e0ea6ad71c309df7eb80"
      ],
      "author": {
        "name": "Travis Geiselbrecht",
        "email": "travisg@google.com",
        "time": "Tue Apr 24 14:14:55 2012 -0700"
      },
      "committer": {
        "name": "Travis Geiselbrecht",
        "email": "travisg@google.com",
        "time": "Tue Apr 24 14:14:55 2012 -0700"
      },
      "message": "BootAnimation: fix bug to delay the appropriate amount of time per frame\n\nChange-Id: I300b67a97a9a685cec59df12d8d605c2b0b49180\n"
    },
    {
      "commit": "7df7d2022d9bebc21a13dcb7ddacaa61f9c2e38e",
      "tree": "ba66ba6c9223f2c53786cc8bcf086af0ba885e56",
      "parents": [
        "661f362a2c531c46fdce5359b176a30ba7d16e1f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 19 18:00:04 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 19 18:00:04 2012 -0700"
      },
      "message": "Fix issue #4499996: LiveWallpaperPreview activity intent filter\n\nChange-Id: I5fc71503d2c59c907da954dbda3587394e6405bf\n"
    },
    {
      "commit": "9f25b7fdf216c9ef0bd2322cd223eeaf0d60f77f",
      "tree": "b0b509a261874435cab3f5f1a727c02b399bd91c",
      "parents": [
        "54ae14749bc7f9e73cfda35a8b49f9efa80a77fb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 14:30:49 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Apr 10 18:23:58 2012 -0700"
      },
      "message": "Request key maps from input manager service.\n\nInstead of each application loading the KeyCharacterMap from\nthe file system, get them from the input manager service as\npart of the InputDevice object.\n\nRefactored InputManager to be a proper singleton instead of\nhaving a bunch of static methods.\n\nInputManager now maintains a cache of all InputDevice objects\nthat it has loaded.  Currently we never invalidate the cache\nwhich can cause InputDevice to return stale motion ranges if\nthe device is reconfigured.  This will be fixed in a future change.\n\nAdded a fake InputDevice with ID -1 to represent the virtual keyboard.\n\nChange-Id: If7a695839ad0972317a5aab89e9d1e42ace28eb7\n"
    },
    {
      "commit": "90d82ea0085b30894c5297df5faee0b4b655a94e",
      "tree": "0504a46d4c581979c12bd4a58cad6b9004013afe",
      "parents": [
        "e7aff2998489dcf2baf731150ebb63a8e8c509cf",
        "bb4cd8259269743fa8f0912b064961477b368c4f"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Fri Apr 06 10:30:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 06 10:30:49 2012 -0700"
      },
      "message": "Merge \"Build /system/bin/asan/app_process.\""
    },
    {
      "commit": "ac14351e16e1258f1cb54e2bf772b8be004eb2b8",
      "tree": "55c22fe8e19d35764f00a6ffad899e4fd2c4ccd0",
      "parents": [
        "030711c39b6093024d784c1c3d7566bd5a3e3489"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 18:57:33 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 05 19:33:11 2012 -0700"
      },
      "message": "Move some APIs from window manager to input manager.\n\nSimplified input injection API down to just one call.\n\nRemoved all input state reading API.  It was only used by the\nwindow manager policy and required a permission that applications\ncould not obtain.  READ_INPUT_STATE is now unused and deprecated.\n\nChange-Id: I41278141586ddee9468cae0fb59ff0dced6cbc00\n"
    },
    {
      "commit": "bb4cd8259269743fa8f0912b064961477b368c4f",
      "tree": "a2f1cece969241290b281ef3fd72db4aba469d1c",
      "parents": [
        "5e63d99ca5b292702d79ce3e144721710d7106db"
      ],
      "author": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Apr 02 16:16:04 2012 +0400"
      },
      "committer": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Wed Apr 04 21:51:44 2012 +0400"
      },
      "message": "Build /system/bin/asan/app_process.\n\nChange-Id: Id3fa26a1bc0e0832bfde73dbd3acce15ecce823d\n"
    },
    {
      "commit": "5bb508fac6453c75afe8acc2fec6380bc0ebdb06",
      "tree": "2187a2a450cdf80d9b1ea10eb53d7d15b09753e6",
      "parents": [
        "cb5c734790e1e3d8496b4c75c57e8a537784c056"
      ],
      "author": {
        "name": "Stephen Hines",
        "email": "srhines@google.com",
        "time": "Wed Apr 04 08:12:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 04 08:12:46 2012 -0700"
      },
      "message": "Revert \"Build /system/bin/asan/app_process.\"\n\nThis reverts commit cb5c734790e1e3d8496b4c75c57e8a537784c056"
    },
    {
      "commit": "cb5c734790e1e3d8496b4c75c57e8a537784c056",
      "tree": "fa85c044e00d7e2c60f1cd9e2ed58170d16859d5",
      "parents": [
        "ee80082ef7c6575ab36ef63c9f11808a44c371ad"
      ],
      "author": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Mon Apr 02 16:16:04 2012 +0400"
      },
      "committer": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Tue Apr 03 22:17:00 2012 +0400"
      },
      "message": "Build /system/bin/asan/app_process.\n\nChange-Id: Icdfe215a7e86466a07fe0508775c89963a0a4787\n"
    },
    {
      "commit": "d927a1d99630c05ff773f0e9e8791ca9a965e020",
      "tree": "760f8a19e317d68f937eda312efab59200880ecd",
      "parents": [
        "f9c1f9935b349fe1a3f27be4462026dd212f8b78"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:42:44 2012 -0700"
      },
      "message": "Deleted the media, camera, drm related files since they are relocated\n\nChange-Id: I9bc5573ee07e30b305b5b879023aa9ec69e10b91\n"
    },
    {
      "commit": "b347e33daf8102448b10679b224d447a0610698b",
      "tree": "eb1a2d13d5c73c6543d5214e02bb5df2e770b1f9",
      "parents": [
        "8296628ed89d98a76a904cbca53ffeb62db8bbda"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 26 12:38:43 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 26 12:39:38 2012 -0700"
      },
      "message": "move dumpstate and dumpsys from frameworks/base to frameworks/native\n\nChange-Id: Ifdff51a974a9ee3c8ee7b04648a45d2f278ce4df\n"
    },
    {
      "commit": "b3e2e24f789d41d6c38b8ad4c252cf9f6e2122d8",
      "tree": "3db78e2b9860b33fc0a75cdd9e3ddba2f97410db",
      "parents": [
        "61bf87428c0f3366d0c4ec203ff96331b7ec3546",
        "9b8e496f4d143280deff137c5f30ca8907bc28db"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:43:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:43:06 2012 -0700"
      },
      "message": "Merge \"Provisional support for secure decryption of media streams.\""
    },
    {
      "commit": "9b8e496f4d143280deff137c5f30ca8907bc28db",
      "tree": "f6136e4a5bf55c67ac721f1fc94b8d6aadc0fa6f",
      "parents": [
        "7061b5ffb37ea15f235effa1faaf22bb1750c7f5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:13:27 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:24:04 2012 -0700"
      },
      "message": "Provisional support for secure decryption of media streams.\n\nChange-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe\n"
    },
    {
      "commit": "56ca534e65427bdefb7674060f5faa94539b6995",
      "tree": "14a6e9891916e5154ab159120f2632697bea0d7e",
      "parents": [
        "eba00ce996d6646f558f25890f0a551de8e7ecf7",
        "fe6ecdae580efef872df6f1d6b4e22db70afee20"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 26 11:22:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:22:29 2012 -0700"
      },
      "message": "Merge changes Ib4d0e0c0,Iea8f4a23\n\n* changes:\n  libmedia: remove skia include\n  stagefright: remove dependency on skia\n"
    },
    {
      "commit": "c610a6bac76f2c67e6986e76eb1d4fb716d0f89e",
      "tree": "8ea44d2e6f6cf6756e68733d553586c856af4432",
      "parents": [
        "7061b5ffb37ea15f235effa1faaf22bb1750c7f5",
        "7ac3ed1d7679e9cb90b44c6ab1629318b17c0690"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Mar 26 09:03:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 09:03:07 2012 -0700"
      },
      "message": "Merge \"resist umask changes, make dirs 0711\""
    },
    {
      "commit": "7c424a34d7d242e989170f63f6dff07fe3f078ad",
      "tree": "bf171798c74327df7b27f82e34631d347b7cd4f7",
      "parents": [
        "8dd6574809cc9799cf43a7349769eaeb70b63e2d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 15:12:07 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 23:34:43 2012 -0700"
      },
      "message": "stagefright: remove dependency on skia\n\nskia is only used to write a jpeg file, link directly to libjpeg\ninstead.\n\nChange-Id: Iea8f4a2347c38328776541d2b74bcbdea3f62041\n"
    },
    {
      "commit": "209cfdf4f6daf9c2959a3d1eef5544121c79c664",
      "tree": "b100ad98ba8ea7d41c8d8b6069c6aff8c63df46b",
      "parents": [
        "3b3a5b100b2ec63d8f6511b655c74f629b7d1981"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Mar 24 10:48:40 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Mar 24 10:59:14 2012 -0700"
      },
      "message": "Remove JNI in LOCAL_C_INCLUDE from non-JNI related Android.mk files.\n\no related-to-bug: 6214141\n\nChange-Id: Ic88d1732b3e014af47532a0809e01f6086e8464d\n"
    },
    {
      "commit": "7ac3ed1d7679e9cb90b44c6ab1629318b17c0690",
      "tree": "d90a4d55b2537500d16a3c6e60ec6e7681e65a85",
      "parents": [
        "cbe55a1c93056cf2878007ebf823a0ac2ad168b1"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 23 17:52:33 2012 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Mar 23 18:00:47 2012 -0700"
      },
      "message": "resist umask changes, make dirs 0711\n\nMake sure /data/user directory permissions get explicitly set\nregardless of the system umask.\n\nChange directory permissions to 0711. No need for read permissions.\n\nBug: 3272072\nChange-Id: Ida7f3c6656f4e0c9d0a9f7648491cc853c4e44ca\n"
    },
    {
      "commit": "ad812a23df775062f0185076557e7f3fdfa57943",
      "tree": "d170b440d49fb188203bfe2d2b72f844d6b8a0f0",
      "parents": [
        "df78cd5ee959f57c35dd9d6ad0f6871c72438f3c",
        "483f3b06ea84440a082e21b68ec2c2e54046f5a6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "message": "Merge \"Package restrictions per user\""
    },
    {
      "commit": "8686938aa51a8c0005120f242cb187c25fe7bcb2",
      "tree": "7627e6c766af410bf88aa180d53b549834934651",
      "parents": [
        "af0c843672322af3e7af8d684fc3375ef9291843"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 20 15:39:58 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 22 13:18:08 2012 -0700"
      },
      "message": "Use NuPlayer for media playback everywhere\n\nif media.stagefright.use-nuplayer is set to true.\n\nChange-Id: Ibb217e7d7d5195b7feeea557554fe78e1585744c\n"
    },
    {
      "commit": "483f3b06ea84440a082e21b68ec2c2e54046f5a6",
      "tree": "cc0dff8ea3d133a4dc910bc1e90c85380cea2064",
      "parents": [
        "8fca15f1f2273fa429e58f783d0970251d0942e5"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 13 16:08:00 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 10:08:24 2012 -0700"
      },
      "message": "Package restrictions per user\n\nPackages can be enabled/disabled per user.\nThis requires maintaining stopped/launched states and\nenabled / disabled components and packages per user.\n\nRefactored pm.Settings and PackageSettingsBase to keep\ntrack of states per user.\n\nMigrated the stopped-packages.xml to users/\u003cu\u003e/package-restrictions.xml\n\nChanged intent resolution to handle individual user restrictions.\nBunch of IPackageManager calls now have a userId argument.\nMake AppWidgetService handle removals of packages.\n\nAdded some tests for pm.Settings and PackageManager.\n\nChange-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861\n"
    },
    {
      "commit": "4d3f82e8d99558551b876ad075ad999cb92f5327",
      "tree": "d225dd55f6e0b99d986a583f5523d5cf989bef9e",
      "parents": [
        "748601bc627d2b3c34161b186cdb3b91e119290f",
        "ae75f994cc50837afe79d3bfbc576811e3602fef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 16:21:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 16:21:04 2012 -0700"
      },
      "message": "Merge \"Add libmedia_native\""
    },
    {
      "commit": "f6b8f7b34f5fe94cd1d8753ec356b967293f1f9c",
      "tree": "33525b50e1e39afd9c39e4858fd710ee8304a19c",
      "parents": [
        "b106153ba97f3eded6e71ffc92859314b614e0ba",
        "94a36440ba11f7e9d6d444e985a7510cb56f886b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 07:31:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 19 07:31:58 2012 -0700"
      },
      "message": "Merge \"audio_channel_in/out_mask_from_count\""
    },
    {
      "commit": "baad5d5f0de40c4b161aaf8bb87aee4e57784c50",
      "tree": "7b6f6bb875bf4285c0f383cd3d632618ecd25654",
      "parents": [
        "b070521ee1403788ee6acc4b1ed11e374192d40b",
        "29ba7e66804e91cbd05fed74893061b4971ec52b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:19:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 15:19:51 2012 -0700"
      },
      "message": "Merge \"resolved conflicts for merge of 354e0346 to master\""
    },
    {
      "commit": "29ba7e66804e91cbd05fed74893061b4971ec52b",
      "tree": "ca4939082344887f6879023a0a08801ab2092e3e",
      "parents": [
        "4108fbc299bb0c02293ff53fa670308ed81607f7",
        "354e034697d667fbab5d3f9af28704dca4ad7b12"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:03:36 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 15:03:36 2012 -0700"
      },
      "message": "resolved conflicts for merge of 354e0346 to master\n\nChange-Id: I432f5f43aa1e19c6a474e8656fe0e3715828e8af\n"
    },
    {
      "commit": "a7110640d0d7a479f8e614c8fff10a6672bfe4bd",
      "tree": "6e0cff5568502fec4748ebc47274cf3f2a1f33da",
      "parents": [
        "ddc421d19c797096de77c24f68a37ad23216e2a7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 13:19:20 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 16 13:19:20 2012 -0700"
      },
      "message": "Report an error instead of waiting for EOS indefinitely in sf2.\n\nChange-Id: Id7bcfb90a3b6a61f0df8bd8f39ea4ffa3c433d87\n"
    },
    {
      "commit": "5da418d3319add35f15197db39195984b0262e84",
      "tree": "6478bcad8909ed9172281a7ec3e475d0febc5052",
      "parents": [
        "a1faacd268b431f73c07be7db5e1b7388f6655c1",
        "ce06c000b4133c63414c3244c3325e25315ab179"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 11:55:48 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 11:55:48 2012 -0700"
      },
      "message": "am ce06c000: Merge \"Debugging code for #6169553: Make Phone launch faster\" into ics-mr1\n\n* commit \u0027ce06c000b4133c63414c3244c3325e25315ab179\u0027:\n  Debugging code for #6169553: Make Phone launch faster\n"
    },
    {
      "commit": "c032a73b511d4006e083a646b7dd23d54ed373ac",
      "tree": "e2455e95c160534c644a277121da7e7f525e6b4c",
      "parents": [
        "c8e83aa73e174be163649bb80989b9099fbb74cf",
        "ce06c000b4133c63414c3244c3325e25315ab179"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 16 11:55:05 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 16 11:55:05 2012 -0700"
      },
      "message": "am ce06c000: Merge \"Debugging code for #6169553: Make Phone launch faster\" into ics-mr1\n\n* commit \u0027ce06c000b4133c63414c3244c3325e25315ab179\u0027:\n  Debugging code for #6169553: Make Phone launch faster\n"
    },
    {
      "commit": "ae75f994cc50837afe79d3bfbc576811e3602fef",
      "tree": "54200155dc1dc7f1b1e96c3cef9a48b6909af213",
      "parents": [
        "2937a9ea0a81a0400f0189221f775561ff3b0a6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 16 11:42:24 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 16 11:51:30 2012 -0700"
      },
      "message": "Add libmedia_native\n\nChange-Id: Ib8cff8abd73723b793f08da99ad59549f219e0e7\n"
    },
    {
      "commit": "2a29b3ad1350785aedea3442b38042885533576c",
      "tree": "110eb4b7982347f7fb8bdc309369a98d44ea4993",
      "parents": [
        "7f94977867ae67aa4f75d9db5de94e1233a2d7fe"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 15:48:38 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 15 15:48:38 2012 -0700"
      },
      "message": "Debugging code for #6169553: Make Phone launch faster\n\nThe activity manager now has a tick when launching an app every\n500ms, where it collects the current stack traces of the app if\nit hasn\u0027t finished launching.  These traces are included as part\nof dumpstate.\n\nThis is only done on non-user builds.\n\nChange-Id: I7f09ea00aab821ac81795f48c9d68fcca65f89fe\n"
    },
    {
      "commit": "94a36440ba11f7e9d6d444e985a7510cb56f886b",
      "tree": "3c7f6f87eef75d41e416460b30133594b2747378",
      "parents": [
        "4513bc0f28d210a970166f6ce35c3bbab1e49522"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 12:56:06 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 15 13:15:27 2012 -0700"
      },
      "message": "audio_channel_in/out_mask_from_count\n\nand avoid ambiguous term \"channels\" where it might be confusing\nas to whether it is a channel mask or channel count\n\nChange-Id: I744fa08ccb6001a98c97bd638d2c9d56836c4234\n"
    },
    {
      "commit": "00b0a85e906fb62d37981ca03452eefd8b9fc254",
      "tree": "67b1787bd97c11cbc424a6e1ed26d18fdf6542b1",
      "parents": [
        "58984b0738372bcc8b5862276836ab014377ff94"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:03:05 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 15:48:22 2012 -0700"
      },
      "message": "Remove false dependencies\n\nChange-Id: I2a2976eb27b262bcba0c76ab37d822407d2337a7\n"
    },
    {
      "commit": "a4972e951bf2bdb7afdafee95b3ab0c15b8bacae",
      "tree": "9800a9dcd62d945a8ad71549ebcef70393ef5442",
      "parents": [
        "89ea4ca9c26f3c7e365525a0b83500e85517a457"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 14 10:38:05 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 14 12:57:14 2012 -0700"
      },
      "message": "Add new \"options\" argument to all startActivity APIs.\n\nThis will be used to allow new features to be requested...  such as,\nsay, a special kind of animation.  Right now there are no options\ndefined.\n\nChange-Id: I4eb6f27275cdd4bf186f6da316ab93a2372ad4b7\n"
    },
    {
      "commit": "e1dea48f92fd087573ac76c6acd03f5a19181ece",
      "tree": "74f3810d794210df8f54d229006c9dcfc6bcd5ea",
      "parents": [
        "958ec9d0b2f2063a03d3ea2b9bb86897125401b0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 14:37:53 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 21:28:57 2012 -0700"
      },
      "message": "Switched to use the header files in /frameworks/native\nand deleted the duplicate header files in /frameworks/base\n\no related-to-bug: 6044887\n\nChange-Id: I17e0692d9a9b5c8796ded36677c833ca8ab36795\n"
    },
    {
      "commit": "92a8b22e7410e74e1cba1b856333116652af8a5c",
      "tree": "fd340b33bdcf7d2b5f84d9f9454a5805efff54b6",
      "parents": [
        "64d10a1da0a702ffeb086ad9c4a632f2712f1dad"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 16:24:04 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Mar 12 12:18:53 2012 -0700"
      },
      "message": "ActivityManager: add option to allow OpenGL trace.\n\nThis patch adds an option to enable tracing of OpenGL functions.\nOpenGL tracing can be enabled by passing \"--opengl-trace\" option\nto am start.  This option requires either a device in debug mode,\nor that the application itself has debug permission set.\n\nChange-Id: I77788bfe97c9108943b1f947ce81afe8293d78a0\n"
    },
    {
      "commit": "442df22dac012fa5ac7b73267f0ea9e306b2f533",
      "tree": "161afb45e99d9d43e45f17bf052475ddfca4110a",
      "parents": [
        "a9821bdd0245c433914cf2379bf7e418270995da"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 09 09:46:33 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 09 09:46:33 2012 -0800"
      },
      "message": "fix EOS handling in codec test.\n\nChange-Id: I5eb6d00aa0c1a728a951c7ffa4faebcadd7b14a6\n"
    },
    {
      "commit": "7d8775a87eeedfcd9349f56f667b636f6643766e",
      "tree": "5104c9226a9805a826413951501fd853a3610c99",
      "parents": [
        "c9ab47b4fc545db531488bf2f49fcde33eca363c",
        "8c79817dc6459baa2c79db88e3c3e4d5c07d6a61"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 08 14:45:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 14:45:51 2012 -0800"
      },
      "message": "Merge changes I140d291e,Id443ec5c\n\n* changes:\n  remove files that moved to frameworks/native\n  fixup hardcoded include paths for new project\n"
    },
    {
      "commit": "cd40f4a062d73088462eaca6c3e778440c1ccdd8",
      "tree": "f135f65f13e4fe73e5c290c5edb907a77ece1787",
      "parents": [
        "263aa1ebe0e3530e2d302d69e48c3e9aea281441",
        "e5760e3e9f7a3aeee87b8beaf26cd6783b0ccc08"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 08 09:07:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 09:07:10 2012 -0800"
      },
      "message": "Merge \"Added better codec statistics to evaluate performance.\""
    },
    {
      "commit": "8c79817dc6459baa2c79db88e3c3e4d5c07d6a61",
      "tree": "d7e4dfcc8a7851d5851750989664ec81ca620d6d",
      "parents": [
        "08965ec67ada98f63f8ac879cc44c8b0e7ff046d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:36:08 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:36:08 2012 -0800"
      },
      "message": "remove files that moved to frameworks/native\n\nChange-Id: I140d291e520097b1148930f736823650e08488f7\n"
    },
    {
      "commit": "08965ec67ada98f63f8ac879cc44c8b0e7ff046d",
      "tree": "9f8deeff644b4556c1054115e67de94bc6c39965",
      "parents": [
        "2d5ddd18688109e00229c577cefe1501ae39589e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 05 16:16:58 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:34:36 2012 -0800"
      },
      "message": "fixup hardcoded include paths for new project\n\nChange-Id: Id443ec5c99bb4d7653905f1be1f72a029e0cf087\n"
    },
    {
      "commit": "e5760e3e9f7a3aeee87b8beaf26cd6783b0ccc08",
      "tree": "3940ac84ecb7d144ba89cd79cbe25894569a1506",
      "parents": [
        "761415bd7f5611812336a3d39b3f6baac22a1b88"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 07 12:40:59 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 07 12:40:59 2012 -0800"
      },
      "message": "Added better codec statistics to evaluate performance.\n\nChange-Id: I9a1e4a803502329e0342ddde07b6df6b3761afd8\n"
    },
    {
      "commit": "4834ada49217c145ee5dff82db1f77da2d54d0b4",
      "tree": "c18bd737e98eb1821eaee9fbf24c884bcb804e5c",
      "parents": [
        "14700016e9270de4e57a29ef29bf7949cd32518d"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Mar 02 11:50:47 2012 -0800"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Mar 02 11:50:47 2012 -0800"
      },
      "message": "dumpstate: more tweaks in the data collection order.\n\nWe try to further minimize the resource footprint/contamination\n of the data collecting commands.\n\nChange-Id: I6c15b0b88a6e3e8d68e0ed9b0cc696db3cf18478\n"
    },
    {
      "commit": "d0f4e09cba152a2c6cdb14e6a5ff36e864cb5adf",
      "tree": "4027cf0e3264e9ae7b6784d7714fa0ab09efc0fa",
      "parents": [
        "5bb59daf42fb24c1131effd4265c2386304feceb"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Mar 01 13:37:30 2012 -0800"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Mar 01 13:37:30 2012 -0800"
      },
      "message": "dumpstate: move some of the cheaper-to-collect info earlier.\n\nSome of the state gathering commands take time (ping,...).\nThey give the system a chance to reboot when things are going belly-up.\nWe now move some of the cheaper ones (dmesg, last_kmsg, /proc/*...)\nearlier in the dump.\n\nChange-Id: I9ffc50ef9105a63193072bc34922dc0bc2bfbd38\n"
    },
    {
      "commit": "67d2c09d897dfc6c3901e5962f8bd4d4d35da90e",
      "tree": "776d33ac390ddc4ec1f6d576f5c5815426f92d57",
      "parents": [
        "b303b428169986bc8c469218f3b0fc1fcafe4a95",
        "8486bc11baa717390796f2ebd55c7b2ae9294bb7"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 29 14:08:13 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 14:08:13 2012 -0800"
      },
      "message": "Merge \"Update to allow passing empty string in a binding.\""
    },
    {
      "commit": "8486bc11baa717390796f2ebd55c7b2ae9294bb7",
      "tree": "16e33a640cc642da10598e412c4834e40d9dda7c",
      "parents": [
        "6f9d697d8316f25be0e2a472604fd7e17d214c64"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 29 14:02:06 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 29 14:06:36 2012 -0800"
      },
      "message": "Update to allow passing empty string in a binding.\n\nChange-Id: Ia16bd5dc78da1f5c8e52070d9c0e8431744224e8\n"
    },
    {
      "commit": "4484bdd2f99a753b0801f0c13ca8a2b7bc38695a",
      "tree": "8340a689fd485b4ae2fa0fa394d7f1b027890cfd",
      "parents": [
        "f64dfccd96286255fd382486c94cdb48921c45fa"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 28 15:54:51 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 28 15:54:51 2012 -0800"
      },
      "message": "Separate the notion of \"stop\" from that of \"release\", i.e.\n\nstop - means transition back to LOADED state and keeping the component\ninstance allocated.\n\nrelease - means we get rid of the component completely.\n\nChange-Id: I40ad01ce70821faaad43f57999249904f9144924\n"
    },
    {
      "commit": "95bbbf52237e64f41312d10e3a83c5ea2ed1b633",
      "tree": "6a5997be4db834c56df59f0849fa1376bee20ffa",
      "parents": [
        "e5c484cb5588146f2bf3aeaf8324db80bc735d46",
        "cb115fca1fe16d01f9a75f3963c87feafc0d42b8"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Mon Feb 27 17:05:55 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 17:05:55 2012 -0800"
      },
      "message": "Merge \"dumpstate: use /system/xbin/su directly\""
    },
    {
      "commit": "8335f1ccccedb6655d96d9d5b697a7f0938235dd",
      "tree": "30a7f8b3e646157365dd51222665a68753fa25e3",
      "parents": [
        "57235fc65b5920f4867e66c8263efab49e92a21b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 18:48:35 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:08 2012 -0800"
      },
      "message": "fix libgui header location\n\nChange-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe\n"
    },
    {
      "commit": "cb115fca1fe16d01f9a75f3963c87feafc0d42b8",
      "tree": "b666b5ecae1cdbe48d2f94bb4bfcc32b65c29d8c",
      "parents": [
        "5265466e8a5453e738713869f61ca45482b85319"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Feb 24 18:53:45 2012 -0800"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Feb 24 18:53:45 2012 -0800"
      },
      "message": "dumpstate: use /system/xbin/su directly\n\nThis avoids accidentally picking up very common \"su\" alternatives\nthat developers use.\nIt also avoids having to search the PATH for su.\n\nChange-Id: Ib9a3eeca7f4d892f2c9ea9ca1132304ef8e8484b\n"
    },
    {
      "commit": "5265466e8a5453e738713869f61ca45482b85319",
      "tree": "f5e5b79613f7e223895cb9b66e6aa2794d1b8469",
      "parents": [
        "2abb1381524bdbbc7a09b573505abde4178be2e3",
        "e639da7baa23121e35aa06d6e182558e0e755696"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 24 18:40:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 18:40:37 2012 -0800"
      },
      "message": "Merge \"New development permissions.\""
    },
    {
      "commit": "6281fa1d939cfe5618918ca7974ee96cb2336039",
      "tree": "df4e53e90c53b95bb9a824fb9c9c49cc89dec932",
      "parents": [
        "0862a56caeb3c6b5bdc7b658dbdd3df89993e076"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 24 13:42:47 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 24 13:42:47 2012 -0800"
      },
      "message": "Fix two more locations that use the old setObject(\"buffer\", ...) paradigm\n\nthat I\u0027d previously missed.\n\nChange-Id: Ifbdbfb94d1bc1cbe8c0a403fed05ce99fca8397b\n"
    },
    {
      "commit": "e639da7baa23121e35aa06d6e182558e0e755696",
      "tree": "7d956fc301eb1988a8646ff3a62786639a843da0",
      "parents": [
        "b8678d76c3e09d0d65255f3971b6112a48e19099"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 21 15:11:13 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 23 16:39:15 2012 -0800"
      },
      "message": "New development permissions.\n\nThese are permissions that an application can request, but won\u0027t\nnormally be granted.  To have the permission granted, the user\nmust explicitly do so through a new \"adb shell pm grant\" command.\n\nI put these permissions in the \"development tools\" permission\ngroup.  Looking at the stuff there, I think all of the permissions\nwe already had in that group should be turned to development\npermissions; I don\u0027t think any of them are protecting public APIs,\nand they are really not things normal applications should use.\n\nThe support this, the protectionLevel of a permission has been\nmodified to consist of a base protection type with additional\nflags.  The signatureOrSystem permission has thus been converted\nto a signature base type with a new \"system\" flag; you can use\n\"system\" and/or \"dangerous\" flags with signature permissions as\ndesired.\n\nThe permissions UI has been updated to understand these new types\nof permissions and know when to display them.  Along with doing\nthat, it also now shows you which permissions are new when updating\nan existing application.\n\nThis also starts laying the ground-work for \"optional\" permissions\n(which development permissions are a certain specialized form of).\nCompleting that work requires some more features in the package\nmanager to understand generic optional permissions (having a\nfacility to not apply them when installing), along with the\nappropriate UI for the app and user to manage those permissions.\n\nChange-Id: I6571785c6bb5f6b291862b7a9be584885f88f3a5\n"
    },
    {
      "commit": "a2798e252ab92d6ec8901cef6e7c6851ee1840a1",
      "tree": "120661ab2be13bc6404de61131560dd91d83260d",
      "parents": [
        "05e8074eaa5773ca8aba1ba4f99f54ecf79f4106"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 23 11:21:43 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 23 11:21:43 2012 -0800"
      },
      "message": "Be more greedy when it comes to gathering input and output buffers.\n\nChange-Id: I54c4f608e5155917ca35eba5655b4c06357fb112\n"
    },
    {
      "commit": "5c850396b39a57baabd37a9c0c8324f1bee408ca",
      "tree": "f96a99dcb625214edb4262fc26e7f4cb6a18dcfa",
      "parents": [
        "592b213608b67b6c9a72ed080db56fa9fb2cdcf8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 21 14:38:23 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 16:20:59 2012 -0800"
      },
      "message": "Add new APIs AMessage::(set|find)Buffer to make it safer to pass\n\nABuffer objects through messages.\n\nChange-Id: I9f8b4e4c4767d0d70a0105e0c0813b754379b49d\n"
    },
    {
      "commit": "0ae6b481e470877c71508292925528ff308ce415",
      "tree": "efa2083e98b5b2ea7070e52177836a68a16fa827",
      "parents": [
        "1eec6804d2d7aee3ac315c471b07606c51aa008c",
        "88572f7a3e9d7ef85c26865a0150f3c2041561c2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 15:13:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 22 15:13:44 2012 -0800"
      },
      "message": "Merge \"Implementation of a java media codec interface and associated tools.\""
    },
    {
      "commit": "88572f7a3e9d7ef85c26865a0150f3c2041561c2",
      "tree": "30627dcff98dfa4a4058054ef198301b374be82c",
      "parents": [
        "745e02ae45d97fd5672ffc22ea854f011895a4e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 21 11:47:18 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 15:06:06 2012 -0800"
      },
      "message": "Implementation of a java media codec interface and associated tools.\n\nChange-Id: I13e54062d4de584355c5d82bb027a68aeaf2923b\n"
    },
    {
      "commit": "a6ab8730f99e4e0f7a1866b158d5ccdd6fdfa93a",
      "tree": "9dd64be43843c68ba619ef4f3ec97b52f9e578ba",
      "parents": [
        "2a23e88486640e6a4f451e37738d73ab295163ef",
        "3f55172f7b3957a37b094c2afcbaa673a8b488fa"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 22 12:51:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 22 12:51:35 2012 -0800"
      },
      "message": "Merge \"Fixing the content build file to include the command on user builds.\""
    },
    {
      "commit": "3f55172f7b3957a37b094c2afcbaa673a8b488fa",
      "tree": "3982d27341e9f35513f7ba48abbf685843bfae1b",
      "parents": [
        "b6ad5b14cbb09f8a10c3155895337c773e7a850b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 22 12:49:35 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 22 12:49:40 2012 -0800"
      },
      "message": "Fixing the content build file to include the command on user builds.\n\nChange-Id: Ic4a1627eff869702d04c81dcb9a877c74ed65f2a\n"
    },
    {
      "commit": "3e3681151a231225b2b25c996bb9e85948a345a8",
      "tree": "4f22d76c270b119b1bb9399cb524147008e5723f",
      "parents": [
        "edabdcf5acc7d607e74590f9207696702d45bf2f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 18:56:08 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 18:56:08 2012 -0800"
      },
      "message": "remove libui\u0027s dependency on libpixelflinger\n\nthis also remove support for unused pixelformats.\n\nChange-Id: I2c759a6d2daa740f3786ed62095def8047ae933d\n"
    },
    {
      "commit": "83c64e6b624a876436d2ef5d2f173b10407e27b4",
      "tree": "c4effc3260ab399e8fdae23baf06b076cd87a604",
      "parents": [
        "94d0024557f415b8463f085c9784a3e1d02b58c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 16:58:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 20 22:38:43 2012 -0800"
      },
      "message": "frameworks/base refactoring\n\ncreate the new libandroidfw from parts of libui and libutils\n\nChange-Id: I1584995616fff5d527a2aba63921b682a6194d58\n"
    },
    {
      "commit": "b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4",
      "tree": "2b90dc39a35d8081ea47b038893624b69a01202d",
      "parents": [
        "6db0608dff408130b35e6f21abe746a635648b18"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 18:27:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 19:01:26 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nstep 2: move libutils headers to their new home: androidfw\n\nChange-Id: I14624ba23db92a81f2cb929f104386e1fab293ef\n"
    },
    {
      "commit": "b9345b9496527eb710fb89dc771df52b4e5bc1ad",
      "tree": "a842893a07f6693ea55755843926306755335f7f",
      "parents": [
        "d72031cee315438c4728fd3f0cce1971a9f00717",
        "09ff963b085b3934d52112e2b74688125304e3f9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 16 14:18:46 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 14:18:46 2012 -0800"
      },
      "message": "Merge \"Fixing the build.\""
    },
    {
      "commit": "09ff963b085b3934d52112e2b74688125304e3f9",
      "tree": "c7ff8b2141c9272398c686f1a20be3b513820f8e",
      "parents": [
        "25872aa3ef189ae5506a923398af11ce5eb1a9b9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 16 14:10:36 2012 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 16 14:10:36 2012 -0800"
      },
      "message": "Fixing the build.\n\nChange-Id: I9ba599adea16b68c3c3af166a2845979624aef80\n"
    },
    {
      "commit": "6c929510474caa14dc9d56826b2c65552861d6b3",
      "tree": "cfa4a959e65db46ae2469104ba5ccdc63e15cd38",
      "parents": [
        "cb46d80d217899e51c3d1ad6fc930d9b61883cf9"
      ],
      "author": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Mon Aug 15 11:59:47 2011 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 16 13:45:10 2012 -0800"
      },
      "message": "Upintegrate the common_time service from ics-aah.\n\nMove the common_time service developed in the ics-aah branch back into\nmaster.\n\nThe common_time service is a small service build to synchronize an\narbitrary timeline amongst peers on a local sub-net.  While running\nand configured, the service will elect a master from the set of\navailable devices within the subnet, define a relationship between the\ncommon_time timeline the local time timeline (provided by the local\ntime HAL), and then attempt to maintain synchronization between common\nand local time by controlling the frequency of the local time clock\nvia the HAL, or by disciplining local time in the digital domain if\nthe local time HAL implementation does not support HW slewing.\n\nOn its own, the native common time service will do nothing until it is\nconfigured.  The CommonTimeManagementService (running out of the\nsystem server process) is responsible for implementing policy\nregarding configuration and operation of the common_time service and\nwill be added in a subsequent CL.\n\nChange-Id: I71292f9b9b1797665865689c4572c9d3a0552f64\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "cb46d80d217899e51c3d1ad6fc930d9b61883cf9",
      "tree": "38eb3a24c1c575907ca1d304d635ad7d0f3b909f",
      "parents": [
        "e36f19a1a5e22dfb6c126f41ab7a00c10e87e7c9",
        "25872aa3ef189ae5506a923398af11ce5eb1a9b9"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 16 13:06:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 16 13:06:29 2012 -0800"
      },
      "message": "Merge \"Adding shell commands for modifying content.\""
    },
    {
      "commit": "687bdf0ae12addc095ba9f195e4ef3aa1133aa38",
      "tree": "f319d30292040eba926f77cea39b75484eca27bc",
      "parents": [
        "57ff581bd9b16a192a567f84d0e0a5c82d866343"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 15 15:04:01 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 15 15:55:21 2012 -0800"
      },
      "message": "Move keystore to system/security repo\n\nMove keystore to system/security at revision\na91203b08350b2fc7efda5b1eab39e7541476b3a\n\nChange-Id: I7dbd625b864e9c63489b08e9fd28dfb22da81072\n"
    }
  ],
  "next": "25872aa3ef189ae5506a923398af11ce5eb1a9b9"
}
