)]}'
{
  "log": [
    {
      "commit": "11eab056dd0133a390169d3581edf3eef26d6a54",
      "tree": "efcb4b7e4e289be17db5ed1356f365e0e18f87e6",
      "parents": [
        "1415bb7a948e0add9f6beb6dccbea70e9d2bedd0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 06 12:20:35 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 12 14:14:11 2011 -0800"
      },
      "message": "Publish MediaMetadataRetriever.java as public API\n\no Removed setMode() methods and related mode constants\no Removed some of the unused the metadata keys\no Updated the javadoc\n\no part of a multi-project change.\n\nbug - 2433195\n\nChange-Id: I5ed167f1fd6a53cb143b7dc385b149431d434438\n"
    },
    {
      "commit": "4f05220d10338b6ad668c87e70cbe7b9914a9047",
      "tree": "fe400e54a2fa2ad9dfd09a4f09f8255f22df1171",
      "parents": [
        "bdd8d17d81c4ef41a2ae82c7f73ecff6b48f493e",
        "690d20bb53ba2485f59d128b365eff991d5cc3e6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 09 11:59:12 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 09 11:59:12 2011 -0800"
      },
      "message": "Merge commit \u0027690d20bb53ba2485f59d128b365eff991d5cc3e6\u0027 into manualmerge\n"
    },
    {
      "commit": "b4ff35df5c04aec71fce7e90a6d6f9ef7180c2ad",
      "tree": "e4473f1b22e3051a8f82239256148820d4e097d5",
      "parents": [
        "a5af5d6b122b5d7337e6640deabf7886689679eb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sun Jan 02 16:37:43 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jan 04 17:31:24 2011 -0800"
      },
      "message": "Mouse pointer integration.\n\nAdded support for loading the pointer icon from a resource.\n\nMoved the system server related bits of the input manager out\nof libui and into libinput since they do not need to be linked into\napplications.\n\nChange-Id: Iec11e0725b3add2b905c51f8ea2c3b4b0d1a2d67\n"
    },
    {
      "commit": "54e6649e4cac3475593f3acb7894837fa1dc61eb",
      "tree": "c8160f64420a90b870954b7dcc7aec8d3844bb66",
      "parents": [
        "d486375c148b54be209468d83311b981ef3258cc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 23 10:27:40 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 23 10:27:40 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit eaeaa2672d4e0a82891493b2bde8bdd0c0e79a1b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 23 10:26:48 2010 -0800\n\n    Remove lowest bandwidth stream if using the legacy player.\n\n    Change-Id: I2f885e26344996de9152f8fda9fd6bdef89bf953\n\ncommit 7d652972615b2750fd8f1c21b9fab0e136df2b82\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 23 10:14:36 2010 -0800\n\n    Don\u0027t clear the packet source\u0027s format for legacy discontinuities.\n\n    Change-Id: I9bd5a21b9bd28043ad38bd0658ccc8eda3c1079a\n\ncommit 2b18a45aac17cbfe1aa089d0f6510957d438dd64\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 23 10:13:55 2010 -0800\n\n    Use NuPlayer for HTTP live streaming based on runtime property.\n\n    adb shell setprop media.httplive.enable-nuplayer true\n\n    Change-Id: I22738df3403985dc8e6992b1ab5da5747309f773\n\ncommit 50d899fb7b9ea52c3994b0a58e993998d926aeed\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 16:25:22 2010 -0800\n\n    Make ACodec a lot less verbose.\n\n    Change-Id: I94c7e499b61032321ffaf999f5ad2c913cde6a48\n\ncommit b19e1740cb4d02990a56844654b5d019987c6405\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 16:22:22 2010 -0800\n\n    Wait until we have fresh codec-specific-data before instantiating the decoders\n\n    after a discontinuity involving a format change.\n\n    Change-Id: I7bcf9b5ae3319f08bf8978a117e8ee5220902e37\n\ncommit 06428c006906c9099e430aface3b439ff1d36ecc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 15:20:38 2010 -0800\n\n    Disable random seeks in the streaming tool for now.\n\n    Change-Id: Ie86fde422dcfc4b2c7a01be51a193fda9c88cd71\n\ncommit e19db68f3bea8a61c191f60f6940f30e3a0d5f1b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 15:20:27 2010 -0800\n\n    Tweak HTTP live parameters.\n\n    Change-Id: If4b71e12485facc523a8a43d8213d0feb190daab\n\ncommit 1e9942791538c2256b579d96c6c04264b0d8b087\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 14:48:23 2010 -0800\n\n    Enable http live streaming through NuPlayer for http URLs containing the string m3u8\n\n    Change-Id: I1691fe12ae8f1507fe3673313959cd50bc324624\n\ncommit 4c33f96a6e499ee0efe0e70b687094430cb7c1c0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 14:40:27 2010 -0800\n\n    Support for HTTP live streaming in NuPlayer.\n\n    Change-Id: Iacba1c3ebaeb8d3b972185deaf4cff18c8009c54\n\ncommit ddf705ce553708bc5b13d89a878484cf839bd674\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 13:42:47 2010 -0800\n\n    StreamingSource now a subclass of abstract NuPlayer::Source\n\n    Change-Id: Ia6c7c639628910b9d1f37decc55da48b07a70de3\n\ncommit 9e04a8406b1882a8e3fdeb7b4d52db5ae70b970a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 13:33:52 2010 -0800\n\n    Refactor media data sourcing to NuPlayer::Source.\n\n    Change-Id: I1db9fb08c4e527bf7b19c29978cf342c2b0a0bc9\n\nChange-Id: I9610a097481dda58f22142eacda3ac2dba0b63f9\n"
    },
    {
      "commit": "690d20bb53ba2485f59d128b365eff991d5cc3e6",
      "tree": "dc9e90632571711a17a963e39d04fa85613cdc11",
      "parents": [
        "3ce86481cbde92e2cb6fe3a46cbedd8b2a5c4b48"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 22 14:03:29 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 22 16:31:44 2010 -0800"
      },
      "message": "Fix issue # 3227963: SecurityException: Neither user 10023 nor...\n\n...current process has android.permission.WAKE_LOCK\n\nWhen updating a system app, we would actually uninstall the package\nof the system app, which also meant removing its uid...!  It was just\nluck that we would get the same uid when installing the update after\nthat.  During that time, if anyone tried to do anything related to\nthat uid, it would be unknown.\n\nThis change tweaks how we go about replacing system apps by making\nit more like normal apps -- to make this work, if we need to disable\nthe system app, we generate a new PackageSetting from the current\nsystem app and replace it into our data structures, so we can update\nthat without trashing the current correct information about the (still\nactually there) system app.\n\nAlso fixed a problem where we were not killing the currently running\napp before installing, like we do when updating a normal application.\n\nAnd fixed a problem where we were not deleting the /data .apk when\nuninstalling a system app update.\n\nAnd added a new option to the \"pm\" command to clear the data associated\nwith an app.\n\nChange-Id: I0e879677849aa42950a3c360bf78ad820e87674b\n"
    },
    {
      "commit": "a15874665fa785c82afa9f2e8cb3512470c297cb",
      "tree": "0a2d5bc416eb12e5d4c4c21dfb4e7111389b7a8c",
      "parents": [
        "ebf90ac7a82c9a0fa5c02702ccba36bc5082240f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 15 15:17:42 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 15 15:18:26 2010 -0800"
      },
      "message": "Initial support for a true streaming player for mpeg2 transport streams.\n\nChange-Id: I153eec439d260a5524b21270e16d36940ec3161a\n"
    },
    {
      "commit": "ccc714131359eb1022d8c6702b7d82ab9e93f27c",
      "tree": "150c9798fc3d0d5dfee9c83d75845014a5edf983",
      "parents": [
        "ffdd591a829af7fddd36a7b80d2a3b8188c871a6",
        "78e9f4cbaece783b7b87ce3fb0a157dae766012a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:55:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:55:25 2010 -0800"
      },
      "message": "resolved conflicts for merge of 78e9f4cb to master\n\nChange-Id: I1135361e6d66f524c3f349e2bf1f31bd4191c634\n"
    },
    {
      "commit": "78e9f4cbaece783b7b87ce3fb0a157dae766012a",
      "tree": "92ab76a16e62d5284f826fa58499bae963245b84",
      "parents": [
        "6d13b146e0444f40f45b9fe5812093c5e611b68e",
        "e4a5951925f16f18dae91ed65567e96528f17fee"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:37:09 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 13 14:37:09 2010 -0800"
      },
      "message": "am e4a59519: Fix issue #3154576: battery stats checkin should include UID -\u003e packages+ map\n\n* commit \u0027e4a5951925f16f18dae91ed65567e96528f17fee\u0027:\n  Fix issue #3154576: battery stats checkin should include UID -\u003e packages+ map\n"
    },
    {
      "commit": "e4a5951925f16f18dae91ed65567e96528f17fee",
      "tree": "b96636542b481ce23865326f49c5ddff934e71cd",
      "parents": [
        "e3f6336bcffc250da90ec864bccfa73ad1d016b9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 07 11:08:07 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 13 14:31:40 2010 -0800"
      },
      "message": "Fix issue #3154576: battery stats checkin should include UID -\u003e packages+ map\n\nIncludes some other small fixes to battery collection and a few\nother things.\n\nOutput of package info looks like this:\n\n5,0,i,uid,1000,com.android.settings\n5,0,i,uid,1000,com.android.providers.subscribedfeeds\n5,0,i,uid,1000,com.android.providers.settings\n5,0,i,uid,1000,com.android.server.vpn\n5,0,i,uid,1000,android\n5,0,i,uid,1000,com.android.systemui\n5,0,i,uid,1000,com.google.android.backup\n5,0,i,uid,1001,com.android.phone\n5,0,i,uid,1001,com.android.providers.telephony\n5,0,i,uid,1022,com.android.nfc\n5,0,i,uid,10021,com.google.android.location\n5,0,i,uid,10021,com.google.android.syncadapters.calendar\n5,0,i,uid,10021,com.google.android.gsf\n5,0,i,uid,10021,com.google.android.syncadapters.contacts\n5,0,i,uid,10026,com.android.providers.downloads.ui\n5,0,i,uid,10026,com.android.providers.media\n5,0,i,uid,10026,com.android.providers.drm\n5,0,i,uid,10026,com.android.providers.downloads\n5,0,i,uid,10032,com.android.launcher\n5,0,i,uid,10039,com.google.android.gm\n5,0,i,uid,10041,com.google.android.gallery3d\n5,0,i,uid,10049,com.android.providers.calendar\n\nChange-Id: I9e38f254eef146339113ad270f5c6e8b60fb7a1d\n"
    },
    {
      "commit": "1d8843897e1e108586a6a51e05392ff509b3dd7e",
      "tree": "b0be7ab51444255b6e3158e7ec6fbce66a23bc45",
      "parents": [
        "436786e759ed5f5eee34137ea6bfe57414bb9ff4"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Dec 08 11:21:24 2010 -0800"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Wed Dec 08 18:27:29 2010 -0800"
      },
      "message": "service_manager: duplicate registrations override previous ones\n\nWhen a process that has registered one or several binder services with\nthe service manager crashes, that process will usually be restarted by\ninit (see init.rc).  When the process comes back up, it will attempt\nto re-register itself with the service manager.  However, the binder\ndriver may not deliver the death notification to the service manager\nbefore the the new service-registation request, in which case the\nservice manager will reject the request as a duplicate.\n\nThe same may occur if a process takes a while to actually exit.  Since\nthe init language\u0027s restart command does not wait for a process to\nexit before restarting it, there may be for a brief instant two\nprocesses.  The new one will attempt to register before the old\none has exited, causing the same problem.\n\nThis patch does not treat duplicate registrations as an error.\nInstead, the service manager force-releases the old instance and\nproceeds with registering the new instance of a service.\n\nChange-Id: Ib70640ab13f5e22460fff6af2f9520b8a9ac9713\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "ae9d5072534de65d9ea41def2e1b4258a1731ca4",
      "tree": "830c5d190218294b95df9b1e84dc395d8779c7a6",
      "parents": [
        "b5590846c035a28399818451201aaf1256913ec3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 06 10:36:06 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 06 12:45:50 2010 -0800"
      },
      "message": "API Support for both synchronous and queued commands, optionally associated metadata.\n\nChange-Id: Idb90d64cb638942210c5822b3cba2f05b087d601\n"
    },
    {
      "commit": "b5590846c035a28399818451201aaf1256913ec3",
      "tree": "94841822da5b896e8c05e581bb040b87041f7fe0",
      "parents": [
        "768ec6f2be1ca7bd7ac5ae34498bdfaa1fbe19dc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 03 16:12:25 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Dec 06 08:28:36 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 9254c845d7c82976fd4b8be406ce4b17eeb0e119\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 3 15:26:12 2010 -0800\n\n    Remove obsolete code from the cached data source.\n\n    Change-Id: I794b986ac8977cbc834dff189221a636ba564e36\n\ncommit 2ee33711064c58c53ba65ed9e63dd4b01ec2380e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 3 15:23:13 2010 -0800\n\n    LiveSource is dead, long live LiveSession.\n\n    Change-Id: Ibcd0731ecf9c94f0b3e5db3d53d012d9da2a1c66\n\ncommit 9eabb2c3cd8571ab859bdeae0aa7f655c414d8fa\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 3 12:49:31 2010 -0800\n\n    Respect explicitly signalled discontinuities.\n\n    Change-Id: I3c0c16a2de7a99742d25db7d1b2ff0258de52271\n\ncommit 7f7f7b6b906b6ece6e4d43af7fd5f494e805c5e5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 3 11:45:57 2010 -0800\n\n    Better protection against syncword emulation in AAC ADTS content.\n\n    Change-Id: I867e80a4556dd46d24ab3e781177c248a5221719\n\ncommit fe765766582efcc350aed01135ea603576adccf6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 3 09:15:59 2010 -0800\n\n    New implementation of http live driving code.\n\n    Change-Id: I31ddf3d6a0d5929b121be704a2b9c3d6775f7737\n\nChange-Id: Id8d1829c8fcb173756965013f848c1d426ef1048\n"
    },
    {
      "commit": "5cff0630eb970faf1682095ca434b204628b4d62",
      "tree": "4c7934304cb64bb0d5aefb57c279f4c4a822bda0",
      "parents": [
        "988f382308f4d6c743a3d85462184ed077c3a36e"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Dec 03 16:01:57 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Dec 03 16:07:08 2010 -0800"
      },
      "message": "make screencap able to save pngs.\n\nChange-Id: Idf3542ff05670bc872bd91770810ed775266514f\n"
    },
    {
      "commit": "faf09ba9405ff019b5ca7e2317debe4ff269d4f8",
      "tree": "4e455c7318659101ff36e280abb91be3689fb778",
      "parents": [
        "848024f744729a131a461f3d13151b2d0393de17"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 02 17:42:08 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 03 15:32:47 2010 -0800"
      },
      "message": "Prepare for publishing MediaMetadataRetriever as public API\n\nstep one:\no replaced captureFrame with getFrameAtTime\no removed getMode\n\nbug - 2433195\n\nChange-Id: I38a8cecef29014692f0b08b8818326e3ebb40a12\n"
    },
    {
      "commit": "592f4dd8c173f774ac3735211b301e51856d5175",
      "tree": "a54b81d49f33605574f837da1ab079f22c3c37f7",
      "parents": [
        "3b7fec8d56e0634d4c7795258f03023f4885f723",
        "33b2264ea9ab0f1980c49698729a0ab3c51d07fe"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Dec 03 11:23:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 03 11:23:48 2010 -0800"
      },
      "message": "Merge \"Move disk usage utilities to its own library\""
    },
    {
      "commit": "edebb2fe1d1c4d3ad17db91cd7e2bfe8feafd0b7",
      "tree": "763749fe5178479da84f47bc75e5d4f9607fdff7",
      "parents": [
        "0d76ca7a979b8e7cdf27a619a2a6df8b331a0d31",
        "b087ceead79bcb304e5793c6ae9109ce590847dc"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Dec 02 08:03:25 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 02 08:03:25 2010 -0800"
      },
      "message": "am b087ceea: am 40eade14: Merge from open-source master\n\n* commit \u0027b087ceead79bcb304e5793c6ae9109ce590847dc\u0027:\n  Fix crash by \"adb shell pm list permissions -f|-s\"\n"
    },
    {
      "commit": "40eade14bb87d24903588de04449fdfe2e1795cb",
      "tree": "22cf7f66ad807234c28cf352552e9a7e50cfb5ad",
      "parents": [
        "077bc4ac019ad33abd613448e11d3ad501218991",
        "e1de3f390e7be3f82fa5e3e5bf6d6c8cc8414091"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Dec 02 07:55:02 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Dec 02 07:55:06 2010 -0800"
      },
      "message": "Merge from open-source master\n\nChange-Id: Ie25bbfbf12fa8902d9ba82cf2d4ed4c60d439e39\n"
    },
    {
      "commit": "33b2264ea9ab0f1980c49698729a0ab3c51d07fe",
      "tree": "0c30e474c5ddb66c8bc0bcdc44126447f26afd92",
      "parents": [
        "0b44476a23660baabc1984c2fa8ee2c0c114460b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Nov 30 13:49:32 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Nov 30 16:51:13 2010 -0800"
      },
      "message": "Move disk usage utilities to its own library\n\nDisk usage calculation will happen in more places now, so move the\ninstalld calculation utilities out to its own library that only gets\nbuilt for the target.\n\nChange-Id: Idceb6bd663ca6ab3d38fa00e57ee74a25b784855\n"
    },
    {
      "commit": "1c3274ca12a6931568693b897c269107f0346eab",
      "tree": "f16be948fd0c11f124c2e8b402b1f290c1956879",
      "parents": [
        "f0f6c54b13831b11bd7a3bd7a01dc49b7505e56e"
      ],
      "author": {
        "name": "Ali Utku Selen",
        "email": "aliutku.selen@sonyericsson.com",
        "time": "Tue Nov 30 10:37:10 2010 +0100"
      },
      "committer": {
        "name": "Kenneth Andersson",
        "email": "kenneth.andersson@sonyericsson.com",
        "time": "Tue Nov 30 16:22:56 2010 +0100"
      },
      "message": "Fix crash by \"adb shell pm list permissions -f|-s\"\n\npm command makes the assumption that every permission should\ncontain android:description and android:label attributes while\nthey are not mandatory. If a permission does not contain these\ntwo attributes, we get \"android.content.res.\nResources$NotFoundException: String resource ID #0x0\"\nfollowed by a NPE when using -f or -s options.\n\nWith the following change, users will get \"null\" in output for\nrespective fields.\n\nChange-Id: I4e7f407592fa071abdab1d979775f46ec27dc9d2\n"
    },
    {
      "commit": "997d15e1a6e4a74c69c03f164973b7ddd21c6fff",
      "tree": "dd2bfc118a587fe2df72e465f2b1379c691e230d",
      "parents": [
        "a84a744bb1804d7817093c0ab96d9cbaae3916f0",
        "d7c8672ccc8ccd1f99da60accc63d6817d41ac52"
      ],
      "author": {
        "name": "Olivier Bailly",
        "email": "olivier@google.com",
        "time": "Mon Nov 29 15:12:33 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 29 15:12:33 2010 -0800"
      },
      "message": "Merge \"fix int vs. pointer mismatch in return statement. Add missing include header for compilation on x86 target.\""
    },
    {
      "commit": "52b52cdfb7502d5a0fd7bba21d1daa3e36a54e42",
      "tree": "040a33d75806c53592501343999f16c4c3cf114c",
      "parents": [
        "57914381a80c9f19cf5227b4af9e822fa0c74ea9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 23 11:41:34 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 23 14:46:13 2010 -0800"
      },
      "message": "Support streaming data across binder boundaries.\n\nChange-Id: Ifbac61406dcb81343765f99ccba08bd90f9274cc\n"
    },
    {
      "commit": "1bb0ffd0981bec26f906bc62d449e136111af4f8",
      "tree": "91c6a21c85bd5dc4b74663fa4c665f81d0d67a09",
      "parents": [
        "1ca562635117e10fae0888689909e6c39d66b0a4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 22 13:06:35 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 22 14:05:21 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 0870f7bdd10a7cd36087d723d1957d8e1b967ca7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 12:57:04 2010 -0800\n\n    set_surface_crop doesn\u0027t seem to work right yet, stop using it in the SoftwareRenderer.\n\n    Change-Id: If0a24f78b7810a6cecaa82eb4f23d0f90c22cc42\n\ncommit 4767b52bee3a54ae117a8708d6832276a44e6a6a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 11:14:57 2010 -0800\n\n    info-\u003emMediaBuffer may still be NULL at this point...\n\n    Change-Id: I25a71569015b1bb87f1ea7efff7588958774426f\n\ncommit 0cef79874e1f1ddb10b7402177a87d3cffc7de92\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 10:55:12 2010 -0800\n\n    QCOM\u0027s YVU420 color format conversion has now been tested.\n\n    Change-Id: I7fef4b642a928af15d42f006f7cdc107d5ff1d67\n\ncommit 84fe05a6c969ede0ce8a85a530e110afca07c7a7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 09:59:50 2010 -0800\n\n    Removed remaining traces of suspend/resume. Proper reporting of video dimensions based on cropping rectangle.\n\n    Change-Id: Ib238b80cbc1f19e7d312f2422eb5e9ab6b06b1bc\n\ncommit 50970cdc837c5c498bcf0cb61b436196ca9e2ef7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:11:06 2010 -0800\n\n    Revamped Software Renderer respects the crop rectangle.\n\n    Removed obsolete ADRENO support code.\n\n    Change-Id: I984cbc8a99c4d97e09e7d1b1292099c88b9ae535\n\ncommit 8abbc6a5608bff650f968540f24a2eab75f254ed\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:10:41 2010 -0800\n\n    The metadata retriever now respects the crop rectangle while capturing a video frame.\n\n    Change-Id: Id3377176060086d16717f62c77ce26fabe899050\n\ncommit 2d42e4466609d304e88bd2cdd6eb7b297340cc21\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:09:50 2010 -0800\n\n    Changed ColorConverter APIs to be more general.\n\n    Clients can now refer to crop rectangles in both source and destination.\n\n    Change-Id: Ief151d736818396d0389ec04e7df5650e3ad7c04\n\ncommit 273184303d54a54febd3e9c3dd4df30507ea78b5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 15:04:06 2010 -0800\n\n    The stagefright commandline tool now writes the extracted video frame to /sdcard/out.jpg\n\n    Change-Id: Ieb2ab3fda7a7cd9294beccb8db0eed75096eeef4\n\ncommit 2d43390328cadf4ba94c1c3c02e4fb30baa29690\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 14:36:55 2010 -0800\n\n    The AVC software decoder now properly advertises the cropping rectangle.\n\n    Change-Id: Idb7a8a7e2fde5740f0fc34b7e8c92eca2577104b\n\ncommit 9a7ed23c2fac8ce19dce7a34a603acee945a89f6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 13:40:39 2010 -0800\n\n    OMXCodec now signals a format change if the cropping rectangle changes.\n\n    ...and puts the cropping info into its output format.\n\n    Change-Id: I3ffbd8e877ba286fe06a82c536ef20d92548d2e2\n\ncommit efe0323947029df1c502599ccc288c8d676dfd31\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 11:29:39 2010 -0800\n\n    Stagefright\u0027s MetaData object now supports rectangle items.\n\n    Change-Id: I5667bb5ee6622c76104b99fb57f60abb802a8504\n\nChange-Id: I27cb78f2c5e0353f95fdfc5cb53991949ed75b70\n"
    },
    {
      "commit": "482a1b16cb805920b427f0b1adca300571fda92d",
      "tree": "34bdcd1986621aa5f4265e0ca7d76e13ab267a74",
      "parents": [
        "86e735375eb4f681ec8501e12df4730397b4331c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 19 11:45:16 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 19 18:39:16 2010 -0800"
      },
      "message": "Display AVC video sample profile and level for \"stagefright\" util\n\nChange-Id: I04b3f67d162cf3827bc74ad98cd1e1a0f5f14172\n"
    },
    {
      "commit": "d7c8672ccc8ccd1f99da60accc63d6817d41ac52",
      "tree": "9fa8486829c5f9db3f579e6410f161e459cb7acc",
      "parents": [
        "c7bc3d09bda82c0641035966559b911785ccf90e"
      ],
      "author": {
        "name": "Olivier Bailly",
        "email": "olivier@google.com",
        "time": "Thu Nov 18 14:43:36 2010 -0800"
      },
      "committer": {
        "name": "Olivier Bailly",
        "email": "olivier@google.com",
        "time": "Thu Nov 18 14:43:36 2010 -0800"
      },
      "message": "fix int vs. pointer mismatch in return statement.\nAdd missing include header for compilation on x86 target.\n\nChange-Id: I3651fb3be0178b888c5ada3d3754fb379b55a847\n"
    },
    {
      "commit": "6b53e8daa69cba1a2a5a7c95a01e37ce9c53226c",
      "tree": "db912c6cdf230ef7f2cf406c545b3bbae3f09ea2",
      "parents": [
        "a914f340ae5b267dc3ab36c1156c795b8fa18f5d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Nov 10 16:03:06 2010 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 18 09:49:03 2010 -0800"
      },
      "message": "Added support for full PC-style keyboards.\n\nBREAKING CHANGE: Redesigned the key character map format to\naccomodate full keyboards with more comprehensive suite of modifiers.\nOld key character maps will not work anymore and must be updated.\nThe new format is plain text only and it not compiled to a binary\nfile (so the \"kcm\" tool will be removed in a subsequent check-in).\n\nAdded FULL keyboard type to support full PC-style keyboards.\n\nAdded SPECIAL_FUNCTION keyboard type to support special function\nkeypads that do not have any printable keys suitable for typing\nand only have keys like HOME and POWER\n\nAdded a special VIRTUAL_KEYBOARD device id convention that maps\nto a virtual keyboard with a fixed known layout.  This is designed\nto work around issues injecting input events on devices whose\nbuilt-in keyboard does not have a useful key character map (ie.\nwhen the built-in keyboard is a special function keyboard only.)\n\nModified several places where events were being synthesized\nto use the virtual keyboard.\n\nRemoved support for the \"qwerty\" default layout.\nThe new default layout is \"Generic\".  For the most part \"qwerty\"\nwas being used as a backstop in case the built-in keyboard did\nnot have a key character map (probably because it was a special\nfunction keypad) and the framework needed to be able to inject\nkey events anyways.  The latter issue is resolved by using the\nspecial VIRTUAL_KEYBOARD device instead of BUILT_IN_KEYBOARD.\n\nAdded the concept of a key modifier behavior so that\nMetaKeyKeyListener can distinguish between keyboards that use\nchorded vs. toggled modifiers.\n\nWrote more robust key layout and key character map parsers\nto enable support for new keyboard features and user installable\nkey maps.\n\nFixed a bug in InputReader generating key ups when keys\nare released out of sequence.\n\nUpdated tons of documentation.\n\nCurrently QwertyKeyListener is being used for full keyboards\nwith autotext and capitalization disabled.  This mostly works\nbut causes some problems with character pickers, etc.\nThese issues will be resolved in subsequent changes.\n\nChange-Id: Ica48f6097a551141c215bc0d2c6f7b3fb634d354\n"
    },
    {
      "commit": "44ab8453e1c4c46790f792a46d026fa1017d8cfe",
      "tree": "9c499e6c6c1c894bd00c203e8ce6f815cf580187",
      "parents": [
        "64f1163084433952766eed31dbd26df420ba6cfb"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Tue Nov 16 15:10:49 2010 -0800"
      },
      "committer": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Tue Nov 16 16:57:29 2010 -0800"
      },
      "message": "Permission fix: don\u0027t require BACKUP perm for self-restores\n\nThe public API is not supposed to require the BACKUP permission in order\nfor an application to restore its own last-known-good backup data.  However,\nas currently implemented, BackupManager.requestRestore() [the public API\nin question] depends on private Backup Manager methods that *do* enforce\nthat permission.  The net result is that the method cannot be successfully\nused by third party applications: it will throw an exception if attempted.\nThis CL restructures the permission checking involved.\n\nFirst, the underlying beginRestoreSession() operation can now be passed a\n\u0027null\u0027 transport name; if this is done, then the restore session is begun\non whatever the currently-active transport is.  Looking up the name of the\nactive transport is one of the permission-guarded actions that was required\nwith the initial implementation.\n\nSecond, a package name can now be passed to beginRestoreSession().  If\nthis is done, then the restore session can only be used to perform a\nsingle-package restore of that one application.  The BACKUP permission is\nnot required if the caller is tying the restore to its own package name.\n\nIn combination, these changes permit BackupManager.requestRestore() to\nfunction without the calling app needing to hold any special permission.\nThe no-permission case is intentionally quite narrow:  the caller must\nhold the permission unless they both (a) pass \u0027null\u0027 for the transport\nname, thereby accepting whatever the currently active transport is, and\n(b) pass their own package name to restrict the restore session only\nto their own app.\n\nExternal bug http://code.google.com/p/android/issues/detail?id\u003d10094\nInternal bug 3197202\n\nChange-Id: Ibc9d652323f2da03727d850f991b4096af6520d2\n"
    },
    {
      "commit": "75611c8a97e93105f13e22c242ffd2f9672f87c7",
      "tree": "4ab3461e5f0c4b780bd6ac70f8dc16676fbc0d68",
      "parents": [
        "6e1a56d6c8304f24bfda17adc81022e2463d9a42"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Nov 14 10:57:28 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Nov 14 10:57:28 2010 -0800"
      },
      "message": "Switch to use kKeyFrameRate for recordvideo utility\n\nChange-Id: I3f6abfed9c39223fe5c1a1b9c094b7ce8a8ca67f\n"
    },
    {
      "commit": "93e496f0ba5cc1db29387e0c7ef9cd9193c89510",
      "tree": "4fef587a060174084bb7aad9be0ea0b21ec8584d",
      "parents": [
        "dfa448f759e0e91b788e2620a4cf7187b893d24e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 09 11:16:03 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 09 11:16:03 2010 -0800"
      },
      "message": "Added a commandline option \"-x\" to the stagefright commandline tool.\n\nTo display a histogram of decoding times and ideal frame rate distributions.\n\nChange-Id: Id8d70fd2960858c75f5f91ae9ebb9902ad5c37d3\n"
    },
    {
      "commit": "975d24d5af84bee8176877956468eb72347647d5",
      "tree": "57fe261d09971da7f09227ea5c9c628763ab74ab",
      "parents": [
        "b9def8e721fd646246d98a53c24a68737592f216",
        "2b799198bb8d6d4e5bc2f14a32ac7658b5ad3340"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Thu Nov 04 14:53:17 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 04 14:53:17 2010 -0700"
      },
      "message": "Merge \"bugreport: Add bcm4329 internal counters dump\""
    },
    {
      "commit": "2b799198bb8d6d4e5bc2f14a32ac7658b5ad3340",
      "tree": "20d390b1864f6d20070275d34fedc39cff83a084",
      "parents": [
        "8182cd36cfbf5049f72b4be18f67c40ddef89d8b"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Thu Nov 04 14:39:24 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Thu Nov 04 14:39:24 2010 -0700"
      },
      "message": "bugreport: Add bcm4329 internal counters dump\n\nChange-Id: I8e74bc1bf9a269e2a429ada1b1141d10cb7d914f\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "e9418ffc5bb5ab443452af938e733a54cabdf9d7",
      "tree": "6a26126693935b075b485a72ec47439e6eacaf85",
      "parents": [
        "10644106b819acad4f88c3882d5688638951728c",
        "0d7c66b3a555356315c17da48969fee28181ceda"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 04 10:57:34 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 04 10:57:34 2010 -0700"
      },
      "message": "am 0d7c66b3: Merge 42c94791 from open-source master\n\n* commit \u00270d7c66b3a555356315c17da48969fee28181ceda\u0027:\n  Fix the animation disappeared issue\n"
    },
    {
      "commit": "0d7c66b3a555356315c17da48969fee28181ceda",
      "tree": "7e2ee97d9ff616ba1a657ba3e2deb41befd05a83",
      "parents": [
        "c25c28a496012f64da57f5beb3b99f7424abb602",
        "42c94791b08022b9b214c1efb10b252567d1f0fa"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 04 07:22:33 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Nov 04 07:22:44 2010 -0700"
      },
      "message": "Merge 42c94791 from open-source master\n\nChange-Id: Id17a1a787b6d46c44ba39d628129a3a27f6d70be\n"
    },
    {
      "commit": "2c3197bf46130e32194fbfeef6dc6a7940401215",
      "tree": "84be40ef6c8daf6e145a2bb6fa417be772d7c226",
      "parents": [
        "cbaff3c1c6ca28beb6956d60d326684eb614ea09"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Nov 03 16:59:47 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Wed Nov 03 16:59:47 2010 -0700"
      },
      "message": "bugreport: Fix dump of netcfg command\n\nChange-Id: Id2f507f4b094cd9cbe5c5eae9030321d1c3ed71a\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "2978751310b4efef1faa87b116fcaee9423c007f",
      "tree": "1dd4b37421a49568191c4c37eb65f24b672ef1f2",
      "parents": [
        "9df48a0305818122298a86ae9949f6688814928b"
      ],
      "author": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Wed Nov 03 15:33:00 2010 +0800"
      },
      "committer": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Wed Nov 03 15:33:00 2010 +0800"
      },
      "message": "Fix the animation disappeared issue\n\nThe animation movie disappears due to the incorrect logic of\ncommit c11f46259a1e8f4e7e58925aefd1ed9eaf57a7fc.\n\nChange-Id: I9c0eac2bf2950fe20e931da367036ddf38d81f52\n"
    },
    {
      "commit": "7a0fc8776782a18374ec6e3b4418027c3c685b1a",
      "tree": "10c6de4405abf313c3d13cefbfd627e4d5090e60",
      "parents": [
        "de4077487dc32b3b00ec76f8f8ef11a02cccd0f2"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Mon Nov 01 15:50:35 2010 -0700"
      },
      "committer": {
        "name": "Chris Tate",
        "email": "ctate@google.com",
        "time": "Mon Nov 01 15:50:35 2010 -0700"
      },
      "message": "Don\u0027t crash bmgr if there are no available restore sets\n\nProperly guard against a null set of available restore sets when\nvalidating the token passed to \u0027bmgr restore TOKEN\u0027 against what\u0027s\nknown to exist on the backend.\n\nFixes bug 3153986\n\nChange-Id: I74bdd4c6242f682833c1633baa4fefccb2b165a7\n"
    },
    {
      "commit": "95fb8396cad0f947f9d666c4c6b5a9fe4a39afde",
      "tree": "55e4f79fa1e9ba6dc808621c05c1080ffa7daf56",
      "parents": [
        "22c4b8958d0e794c372ded884e21fe765db42e43",
        "faf53c0bf2bd942cc06149364a5425396d958a23"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 22 12:31:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 22 12:31:26 2010 -0700"
      },
      "message": "am faf53c0b: am 40763914: Merge \"Exit immediately on some linklib failures\" into gingerbread\n"
    },
    {
      "commit": "faf53c0bf2bd942cc06149364a5425396d958a23",
      "tree": "0b1dbffb9a56ace1b15d250c82eea2315e50314a",
      "parents": [
        "02482e205a9cae28c9f0b40492c24b777b26dbdc",
        "40763914e3c999a88e2c8254317bc1ac7196ed37"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Oct 22 12:18:46 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 22 12:18:46 2010 -0700"
      },
      "message": "am 40763914: Merge \"Exit immediately on some linklib failures\" into gingerbread\n"
    },
    {
      "commit": "2f791fd868043cf3de738300dceed324ea20842a",
      "tree": "754fbd7e43f8a4c0fbeac7a34734c714aea9cb2a",
      "parents": [
        "eb95b0877aa386938ed20e9429a211eac8b8b805"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Oct 07 13:38:09 2010 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Oct 22 09:48:19 2010 -0700"
      },
      "message": "Change dumpstate so the logs use threadtime instead of time as the default.\n\nThe threadtime option display both the pid and tid which can\nassist pinpointing bugs.\n\nChange-Id: Ib4620d3534a59b291507b757352f9fecb06f7cef\n"
    },
    {
      "commit": "eb95b0877aa386938ed20e9429a211eac8b8b805",
      "tree": "73ceba181879f8468b27bcaecc68358947e0f23d",
      "parents": [
        "8d0083423ff338abdd6a4d74dd008409abaaa4fd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Oct 21 14:54:19 2010 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Fri Oct 22 12:36:07 2010 -0400"
      },
      "message": "Show app services in adb bugreport (dumpstate).\n\nThere is a 60s timeout for this command.  I\u0027d rather do it as an individual timeout\nfor each of the services, but this is easier and will probably cover for busted apps\nwell enough.  Also, this is running last in dumpstate, so if it\u0027s lost... oh well.\n\nAlso, clean up the formatting of the service dump so it\u0027s more readable in bugreport.\n\nChange-Id: Ibd727f4b3366f7af9e7ef1e231868f5cedc48132\n"
    },
    {
      "commit": "0332d1c5a5a0353df9e9b02422b33656930c2941",
      "tree": "4d10e11973d21478b437de7b0f62e12ddbff846c",
      "parents": [
        "703aae06c0925b19657877bb1872bb2f28874969"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 21 16:14:06 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 21 16:14:06 2010 -0700"
      },
      "message": "Exit immediately on some linklib failures\n\nIf the library couldn\u0027t be printed to the string, installd should fail\nearly instead of trying to chmod() back to uninitialized stat struct.\n\nBug: 3121721\nChange-Id: I8a3604954ae657a1e07c1ad8d5569aa80aff9e0a\n"
    },
    {
      "commit": "c7912444448d84d0fc70554a1a36e18a882c8f62",
      "tree": "77e8278a9d616037bcf7e283f7f909b8d26aecca",
      "parents": [
        "a35827a8e92c79e200610e93549d7191fe701b19",
        "9a430d8c0e376160f287e50cdad99177e69ec384"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 21 15:31:07 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 15:31:07 2010 -0700"
      },
      "message": "am 9a430d8c: am 62d0970c: Merge \"allow dumpstate to work for non-root users.\" into gingerbread\n\nMerge commit \u00279a430d8c0e376160f287e50cdad99177e69ec384\u0027\n\n* commit \u00279a430d8c0e376160f287e50cdad99177e69ec384\u0027:\n  allow dumpstate to work for non-root users.\n"
    },
    {
      "commit": "9a430d8c0e376160f287e50cdad99177e69ec384",
      "tree": "ffe9768e8153728914a31aa79ef8e76b1e7f7b47",
      "parents": [
        "33051ad1785a84ad5d814d6acf337b54d5fab36c",
        "62d0970c82f9a2c17aea67379c207a3f17556c46"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 21 11:50:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 21 11:50:55 2010 -0700"
      },
      "message": "am 62d0970c: Merge \"allow dumpstate to work for non-root users.\" into gingerbread\n\nMerge commit \u002762d0970c82f9a2c17aea67379c207a3f17556c46\u0027 into gingerbread-plus-aosp\n\n* commit \u002762d0970c82f9a2c17aea67379c207a3f17556c46\u0027:\n  allow dumpstate to work for non-root users.\n"
    },
    {
      "commit": "77d87aa7ff352a4867d8a6e2a73fadeb3152c7eb",
      "tree": "809de938ab5423ad572376b636b923b65d302f69",
      "parents": [
        "74b1ed3231b8cafcf4e5cb3f03d794acd5080004"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 21 09:14:14 2010 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Oct 21 09:14:14 2010 -0700"
      },
      "message": "allow dumpstate to work for non-root users.\n\nChange-Id: Iaad4a097f5e09914842955dafbc0a09cc7a1db48\n"
    },
    {
      "commit": "62f2ada64f7213243eafd7a4a4c3ccd5040ad85a",
      "tree": "89da1077376b3f28e2cc680ef4d0ca54a2431e24",
      "parents": [
        "99291b95b2ee1e1b2371806e6f6c96767a350c88"
      ],
      "author": {
        "name": "David Deephanphongs",
        "email": "dpanpong@google.com",
        "time": "Tue Oct 19 14:54:05 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Oct 19 16:56:02 2010 -0700"
      },
      "message": "Add missing NOTICE entries.\n\nAdd missing NOTICE block for TagSoup in general NOTICE file.\nAdd comment in Android.mk to help reviewers locate the NOTICE for apache-http.\nModify build rule for \u0027am\u0027 command to pull in the NOTICE file.\n\nChange-Id: I43c6c1468395b70d0942b3620f12e4b6f3d9a66b\n"
    },
    {
      "commit": "ac2a88061dc9a1ade73b3e76a033238a8be4cb98",
      "tree": "637e5efc14c19ec4a7c258ad2fbb18957b0565ce",
      "parents": [
        "5582cc3a68589c905d56a05b17ba4d247c1b78b0"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 18 08:40:53 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 18 08:41:14 2010 -0700"
      },
      "message": "Remove one more opencore include path\n\nBug: 3101573\nChange-Id: Id60845e4c46523e910504fe6e707f8247a3b6102\n"
    },
    {
      "commit": "5582cc3a68589c905d56a05b17ba4d247c1b78b0",
      "tree": "4f94c0362154a35456a5a2a3847fa31bcf83d652",
      "parents": [
        "5b9fd116f9b63e06fa431a57a1c2e4e5bc03f3fc",
        "fb47487259f0d5329d0fdbdecfc56baab9b96817"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 18 08:33:38 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 18 08:33:38 2010 -0700"
      },
      "message": "Merge fb474872 from gingerbread-plus-aosp\n\nChange-Id: I1bbb845a86a7b7df44ea175df3af22e5f47c44e3\n"
    },
    {
      "commit": "cd0e839a2448deea50f79bddeba782c546b33893",
      "tree": "e8842c168d9048b47843c125661fc71831957cc5",
      "parents": [
        "dbb78f0e4ee3a1ba3e3418b0c1bf8b51e4fa2019"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Oct 13 17:25:24 2010 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Sun Oct 17 18:35:29 2010 -0700"
      },
      "message": "NFC: Move NFC service implementation out of system_server.\n\nNFC service is now an application service in packages/apps/Nfc.\n\nNFC service is registered through ServiceManager.addService(), and the proxy\nobject NfcAdapter obtains a handle to it through ServiceManager.getService().\n\n**Important** Had to add new symbols AID_NFC / NFC_UID / android.uid.nfc and\nmodify service_manager.c, Process.java and PackageManagerService.java in order\nto force the com.android.nfc process to take a fixed uid, so that it can use\nServiceManager.addService().\n\nMost of the JNI has moved to packages/apps/Nfc/jni. However NdefRecord and\nNdefMessage require some in-process native code, so android_com_NdefMessage.cpp\nand android_com_NdefRecord.cpp stay in frameworks/base/core/jni. They link to\na very small library libnfc_ndef.so that implements NDEF message parsing. This\nhas been added to core.mk so all devices (even without NFC hardware) can work\nwith NDEF data.\n\nBug: 3041259\nBug: 3097445\nChange-Id: If7f00cd8f2053acfc9319ca366d4a9c02bd396e6\nSigned-off-by: Nick Pelly \u003cnpelly@google.com\u003e\n"
    },
    {
      "commit": "fb47487259f0d5329d0fdbdecfc56baab9b96817",
      "tree": "2a6292a6e900af0da1f7cdea799bc44404a9ece2",
      "parents": [
        "746c6a1c6d70769ee4b08b9a7b87d0c5aa65c2e4",
        "b04f356d86eec74217fca8e3b85d801c4fcaa678"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 18:25:14 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 15 18:25:14 2010 -0700"
      },
      "message": "am b04f356d: Merge \"Include the framework copy of the OpenMAX headers instead of referencing external/opencore.\" into gingerbread\n\nMerge commit \u0027b04f356d86eec74217fca8e3b85d801c4fcaa678\u0027 into gingerbread-plus-aosp\n\n* commit \u0027b04f356d86eec74217fca8e3b85d801c4fcaa678\u0027:\n  Include the framework copy of the OpenMAX headers instead of referencing external/opencore.\n"
    },
    {
      "commit": "36e7790b6b3c2c36c67fbe5dc2e2313cdd537349",
      "tree": "015c31cf98f1bcc1c3b4b1e8ec7ed1eb5612882f",
      "parents": [
        "6bc34da8acf26c8e70325719fe43eaf22489809d",
        "a851d8d0cfec45e33ee884114548a4f2890d1f06"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Oct 15 17:02:57 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Oct 15 17:02:57 2010 -0700"
      },
      "message": "Merge a851d8d0 from gingerbread\n\nChange-Id: Iea0e3fa1662d6326ab337821fe52a65a9dfd989a\n"
    },
    {
      "commit": "b04f356d86eec74217fca8e3b85d801c4fcaa678",
      "tree": "281ebe8aa89780dd10530b219ed22dea97e34a65",
      "parents": [
        "ff7a7a455c15077e2b691efa370619f06058f697",
        "a4f391c9bf581af19d6dec4603c194126995b6bf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 14:58:54 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 15 14:58:54 2010 -0700"
      },
      "message": "Merge \"Include the framework copy of the OpenMAX headers instead of referencing external/opencore.\" into gingerbread"
    },
    {
      "commit": "a4f391c9bf581af19d6dec4603c194126995b6bf",
      "tree": "03abfd937868de40863a4a5ffc6c8a4dd7bd58c4",
      "parents": [
        "6ac35f059726cf60a364c1efd783a99c901f2d9d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:31:29 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:31:29 2010 -0700"
      },
      "message": "Include the framework copy of the OpenMAX headers instead of referencing external/opencore.\n\nChange-Id: I762f59acf5e1f770e4d7c2d89af362bfffebefa6\nrelated-to-bug: 3101573\n"
    },
    {
      "commit": "bc21fdefdfbeba1754c6cd339c7dd8e8f1d6fd48",
      "tree": "8b58be37237ea58089f6541403fd3092ff64f6bc",
      "parents": [
        "c1e7b2182594aa0463c4a738cc8e7eea6777ef50"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Oct 13 17:25:24 2010 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Fri Oct 15 02:12:32 2010 -0700"
      },
      "message": "NFC: Move NFC service implementation out of system_server.\n\nNFC service is now an application service in packages/apps/Nfc.\n\nNFC service is registered through ServiceManager.addService(), and the proxy\nobject NfcAdapter obtains a handle to it through ServiceManager.getService().\n\n**Important** Had to add new symbols AID_NFC / NFC_UID / android.uid.nfc and\nmodify service_manager.c, Process.java and PackageManagerService.java in order\nto force the com.android.nfc process to take a fixed uid, so that it can use\nServiceManager.addService().\n\nMost of the JNI has moved to packages/apps/Nfc/jni. However NdefRecord and\nNdefMessage require some in-process native code, so android_com_NdefMessage.cpp\nand android_com_NdefRecord.cpp stay in frameworks/base/core/jni. They link to\na very small library libnfc_ndef.so that implements NDEF message parsing. This\nhas been added to core.mk so all devices (even without NFC hardware) can work\nwith NDEF data.\n\nBug: 3041259\nBug: 3097445\nChange-Id: If8f00ce8f2053acfc9319ca366d4a9c02bd396e6\nSigned-off-by: Nick Pelly \u003cnpelly@google.com\u003e\n"
    },
    {
      "commit": "5bc3addb453ba1daad366862a24be654a06ff447",
      "tree": "ef9e34008ce99b4f4cacb6c4fcdd979651a52ec0",
      "parents": [
        "3d59480dc201c893c6da5c3934b14a2d95a1bef9",
        "0689b60b8644d7c4c76e5cdf7e6ce5cc4c5be124"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sun Oct 10 14:19:52 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 10 14:19:52 2010 -0700"
      },
      "message": "am 0689b60b: am 54e01e0f: Merge \"Symlink application lib directory when on SD card\" into gingerbread\n\nMerge commit \u00270689b60b8644d7c4c76e5cdf7e6ce5cc4c5be124\u0027\n\n* commit \u00270689b60b8644d7c4c76e5cdf7e6ce5cc4c5be124\u0027:\n  Symlink application lib directory when on SD card\n"
    },
    {
      "commit": "0689b60b8644d7c4c76e5cdf7e6ce5cc4c5be124",
      "tree": "cb3522b7577d684c0e61148a7fa2278a90ac740f",
      "parents": [
        "ea445758efba6b728d5e597402e9d9538f3ef451",
        "54e01e0f980cfb78153d5481f7e67cef90416174"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 17:41:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 07 17:41:05 2010 -0700"
      },
      "message": "am 54e01e0f: Merge \"Symlink application lib directory when on SD card\" into gingerbread\n\nMerge commit \u002754e01e0f980cfb78153d5481f7e67cef90416174\u0027 into gingerbread-plus-aosp\n\n* commit \u002754e01e0f980cfb78153d5481f7e67cef90416174\u0027:\n  Symlink application lib directory when on SD card\n"
    },
    {
      "commit": "6a6b007c77e5cab7ee435506a4f65824f52028b6",
      "tree": "09daacd02a3582c26d72411e5ef0129812d0c8d6",
      "parents": [
        "b74941e32e068ec03f90b9a53670328cd17ff4b4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 16:46:10 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 07 17:20:26 2010 -0700"
      },
      "message": "Symlink application lib directory when on SD card\n\nThis will help legacy games that use dlopen() to directly access the\n/data/data/\u003capp\u003e/lib directory before the\nApplicationInfo.nativeLibraryDir was part of the API.\n\nChange-Id: Ie9f3e7239b6334708b5d086ffafe66a507f6d9da\n"
    },
    {
      "commit": "c4838afb343f1479d8239c60d51132fda66c1617",
      "tree": "bd1eceabf8ca66927aac457e2ba6d58af57462b3",
      "parents": [
        "ecd31740a00f8fb07090209cd979257c38cbcc92",
        "de6d1d889ebf15250c04a8ffc204b91af1e447e3"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 07 16:32:02 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 07 16:32:02 2010 -0700"
      },
      "message": "Merge \"Move LOG_ALWAYS_FATAL to end of app_process\""
    },
    {
      "commit": "de6d1d889ebf15250c04a8ffc204b91af1e447e3",
      "tree": "74e7bf4e0179ab278d36d502642a3c6db2825061",
      "parents": [
        "c8b7971cb3e09dfd4480a4bb8875a32157b62192"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 07 16:02:11 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Oct 07 16:02:11 2010 -0700"
      },
      "message": "Move LOG_ALWAYS_FATAL to end of app_process\n\nSince LOG_ALWAYS_FATAL is always fatal and code after it is by\ndefinition unreachable, put the call after other diagnostic output.\n\nChange-Id: Ib3a515a04125d8e4f6e8af3a6f59226e8f0dd9cd\n"
    },
    {
      "commit": "10649792d6aadf06c567fbc6fae9f44877504ac0",
      "tree": "d7e21b4c6efa074f666a7fbb6d1e72fe6025b5b7",
      "parents": [
        "c9d5b31f84f5c8b5db690491031369556ed7fee9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Oct 06 18:55:05 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Oct 06 19:07:40 2010 -0700"
      },
      "message": "Add two more options to \"recordvideo\" utility\n\no also removed unused code\n\nChange-Id: I49471b0ac1cf70b5eedcde78a21e7770c312c5d6\n"
    },
    {
      "commit": "bba3b8efbe7dc9dd6fa326103ef7ddefc28d5ba5",
      "tree": "5da8b6283591ad47c1edca60a110fb3837a2459b",
      "parents": [
        "9fa7926beaf6c7fe32159a7e41fae9f618ec7504",
        "19058877df9bf94f197a72855f810f7f6bf8d068"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 04 20:06:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 04 20:06:51 2010 -0700"
      },
      "message": "am 19058877: Merge \"refactored screenshot code\" into gingerbread\n\nMerge commit \u002719058877df9bf94f197a72855f810f7f6bf8d068\u0027 into gingerbread-plus-aosp\n\n* commit \u002719058877df9bf94f197a72855f810f7f6bf8d068\u0027:\n  refactored screenshot code\n"
    },
    {
      "commit": "9fa7926beaf6c7fe32159a7e41fae9f618ec7504",
      "tree": "2aa67d83fba06e30475c74711e10f18692b30e8e",
      "parents": [
        "815b1eb870ea5b1d28de5be768d49e95c776c846",
        "b9aacfdfb014cc0299f7999d2a8940cd60a4cc59"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 04 20:06:47 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 04 20:06:47 2010 -0700"
      },
      "message": "am b9aacfdf: Merge \"new screencap command\" into gingerbread\n\nMerge commit \u0027b9aacfdfb014cc0299f7999d2a8940cd60a4cc59\u0027 into gingerbread-plus-aosp\n\n* commit \u0027b9aacfdfb014cc0299f7999d2a8940cd60a4cc59\u0027:\n  new screencap command\n"
    },
    {
      "commit": "597c7f67b5f2491c6098a1de241a3f0fd274688a",
      "tree": "841774d2e67bfced0608d2344868c64ac566004e",
      "parents": [
        "541d942000c338a15dc4b361b15b72864640d2bf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 29 13:02:36 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 04 17:36:17 2010 -0700"
      },
      "message": "refactored screenshot code\n\nthe core screenshot function now can capture the screen at any lower resolution\nperforming bilinear filtering.\n\nwe also now have some client code to interface with the screenshot service.\n\nit\u0027s now possible to request a screenshot at a lower resolution.\n\nChange-Id: I33689bba98507ab928d0898b21596d0d2fe4b953\n"
    },
    {
      "commit": "541d942000c338a15dc4b361b15b72864640d2bf",
      "tree": "d01c39af297d83c57b2f7bb56bd48f72102f109d",
      "parents": [
        "eb6e22f29ded58e7e51702c34878fd01e20ff802"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 26 18:49:45 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 04 17:35:34 2010 -0700"
      },
      "message": "new screencap command\n\nthis captures the framebuffer via surfaceflinger APIs and outputs\nit to stdout. this is intended to be used by adbd.\n\nChange-Id: I057e331d28dd92bd45a2c7037ab93e220bbd65f3\n"
    },
    {
      "commit": "82a1372070e75df1a0201b22e33514bbb0d7b5e5",
      "tree": "237501aa6db4648598e32a783a638b77b9d27b80",
      "parents": [
        "3621be68a2f4912c76b08cd1a9df8601006215b9",
        "a4f1eb3d775533d9b28248022e0a5b4ec05fc2e4"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Oct 01 17:08:30 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 01 17:08:30 2010 -0700"
      },
      "message": "am a4f1eb3d: am 9430f9d3: Merge \"KeyStore: Update the parameters of generating master keys.\" into gingerbread\n\nMerge commit \u0027a4f1eb3d775533d9b28248022e0a5b4ec05fc2e4\u0027\n\n* commit \u0027a4f1eb3d775533d9b28248022e0a5b4ec05fc2e4\u0027:\n  KeyStore: Update the parameters of generating master keys.\n"
    },
    {
      "commit": "a4f1eb3d775533d9b28248022e0a5b4ec05fc2e4",
      "tree": "9398b4fbc8da10a16dbf7546b204c289a6514050",
      "parents": [
        "edec27a1e9ffc022e68f0d6200ba90499da4b9e9",
        "9430f9d37ec169ce0654bc8950adb66ac974b761"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Oct 01 16:16:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 01 16:16:17 2010 -0700"
      },
      "message": "am 9430f9d3: Merge \"KeyStore: Update the parameters of generating master keys.\" into gingerbread\n\nMerge commit \u00279430f9d37ec169ce0654bc8950adb66ac974b761\u0027 into gingerbread-plus-aosp\n\n* commit \u00279430f9d37ec169ce0654bc8950adb66ac974b761\u0027:\n  KeyStore: Update the parameters of generating master keys.\n"
    },
    {
      "commit": "9430f9d37ec169ce0654bc8950adb66ac974b761",
      "tree": "ecc1519ff222a3c944b2470593d28fa14c04a979",
      "parents": [
        "91b0bc2a282f63f0ee532b5748c210bb67ba6fb3",
        "2509976269fbd9fbd0ec3561e20fdfbd9b897a09"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Oct 01 15:34:43 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 01 15:34:43 2010 -0700"
      },
      "message": "Merge \"KeyStore: Update the parameters of generating master keys.\" into gingerbread"
    },
    {
      "commit": "2a471bb690c20533ccf20246be968f77c867c467",
      "tree": "c5ea338d412566c0013aa7d3f0c7e7b3695caaae",
      "parents": [
        "e15119fee611997e71dd711cd476c9fd572d9853",
        "38ed2e39c54a42dda8f00620f960788f569a3698"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Oct 01 12:15:12 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 01 12:15:12 2010 -0700"
      },
      "message": "Merge \"refactored screenshot code\""
    },
    {
      "commit": "e15119fee611997e71dd711cd476c9fd572d9853",
      "tree": "1faef057b90da0e549c0188de3fa3fec78401eb5",
      "parents": [
        "2a21e73accfdbc8a836f533f23028bef92f86735",
        "b5742452e07d608c0570ba0e1f453796bc30bd50"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 01 12:10:10 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 01 12:10:10 2010 -0700"
      },
      "message": "Merge \"Add a video record utility\""
    },
    {
      "commit": "d1e5ddaf4d4ab5f34d3a94984b8f61477f1a00ce",
      "tree": "547defc62ede0ccd0d9b3d8d71f004f70871cef6",
      "parents": [
        "aafe912e8364b6e5503180b16d26f1d53818721a",
        "797bb4f83dfcaf263c72b760dfa279e3fbb8d545"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Oct 01 11:35:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 01 11:35:37 2010 -0700"
      },
      "message": "am 797bb4f8: am 73db5f02: Merge \"Fix bug #3055578 (\"adb shell bmgr list sets\" generates NPE and cannot be run again when device has no account setup)\" into gingerbread\n\nMerge commit \u0027797bb4f83dfcaf263c72b760dfa279e3fbb8d545\u0027\n\n* commit \u0027797bb4f83dfcaf263c72b760dfa279e3fbb8d545\u0027:\n  Fix bug #3055578 (\"adb shell bmgr list sets\" generates NPE and cannot be run again when device has no account setup)\n"
    },
    {
      "commit": "797bb4f83dfcaf263c72b760dfa279e3fbb8d545",
      "tree": "357f4b50eafe9f4e9b2e3a29ec9ddb5d1434a38f",
      "parents": [
        "d6d5cfb91469d4f060db7cfccfd883903ce95f16",
        "73db5f02a1e1a3fc3514ddbff1c28e22fec3aa7a"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Oct 01 11:32:56 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 01 11:32:56 2010 -0700"
      },
      "message": "am 73db5f02: Merge \"Fix bug #3055578 (\"adb shell bmgr list sets\" generates NPE and cannot be run again when device has no account setup)\" into gingerbread\n\nMerge commit \u002773db5f02a1e1a3fc3514ddbff1c28e22fec3aa7a\u0027 into gingerbread-plus-aosp\n\n* commit \u002773db5f02a1e1a3fc3514ddbff1c28e22fec3aa7a\u0027:\n  Fix bug #3055578 (\"adb shell bmgr list sets\" generates NPE and cannot be run again when device has no account setup)\n"
    },
    {
      "commit": "73db5f02a1e1a3fc3514ddbff1c28e22fec3aa7a",
      "tree": "58cbf57cd6e2b79a87c2f0feff02569dea7a0e0f",
      "parents": [
        "469b80336368bef3742e97c15e9017c1f2d404ae",
        "04686f428995fde3f6f5f5f12ccdd135f885ac84"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Oct 01 11:30:50 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 01 11:30:50 2010 -0700"
      },
      "message": "Merge \"Fix bug #3055578 (\"adb shell bmgr list sets\" generates NPE and cannot be run again when device has no account setup)\" into gingerbread"
    },
    {
      "commit": "04686f428995fde3f6f5f5f12ccdd135f885ac84",
      "tree": "16d3da40249f7a0463b305c5aea2e0106ffe193b",
      "parents": [
        "f01a873029641da2155ca1882f311d8f4e92675a"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Oct 01 11:16:10 2010 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Oct 01 11:16:10 2010 -0700"
      },
      "message": "Fix bug #3055578 (\"adb shell bmgr list sets\" generates NPE and cannot be run again when device has no account setup)\n\n- fix NPE\n- code cleaning\n\nChange-Id: Ieb30b666d995de8cbd27ee6d17e2178e7ea670f6\n"
    },
    {
      "commit": "b5742452e07d608c0570ba0e1f453796bc30bd50",
      "tree": "2e3eb000d2b6c1a53afd733bb41940983e6efd16",
      "parents": [
        "4e2affec16d53bd5943c5738233384526a25f915"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 30 21:34:12 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Sep 30 21:40:14 2010 -0700"
      },
      "message": "Add a video record utility\n\nChange-Id: I3aa7cadf399aa319ee9ca3f391fd8599742bfb7e\n"
    },
    {
      "commit": "281d114ce8b380cade7c0ee4f70c7b0fb1f66fb2",
      "tree": "fdd2249b5503bef3ac73b88bfc30654779029132",
      "parents": [
        "2e88d0c4bc22412645d115945683ae6d7d2a33e3",
        "ab6327bc9ab70f3b4c1f509d038474982772207e"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 13:36:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 30 13:36:55 2010 -0700"
      },
      "message": "am ab6327bc: am 20cb2310: Merge \"KeyStore: Initialize IV correctly.\" into gingerbread\n\nMerge commit \u0027ab6327bc9ab70f3b4c1f509d038474982772207e\u0027\n\n* commit \u0027ab6327bc9ab70f3b4c1f509d038474982772207e\u0027:\n  KeyStore: Initialize IV correctly.\n"
    },
    {
      "commit": "59c1da63421c74bd386f20b9c88cc01ac611d4d0",
      "tree": "69916be4d4570001eaf3d7183188c806e23ba271",
      "parents": [
        "e0ed9dbcb8f3b67f66a1b2a1df264e3aee0bb81c",
        "92cb1a026a2d6c594a63c18d8906271147eed85b"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 13:36:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 30 13:36:43 2010 -0700"
      },
      "message": "am 92cb1a02: am 2cbb56f9: Merge \"KeyStore: Fix the return value when send() or recv() has an error.\" into gingerbread\n\nMerge commit \u002792cb1a026a2d6c594a63c18d8906271147eed85b\u0027\n\n* commit \u002792cb1a026a2d6c594a63c18d8906271147eed85b\u0027:\n  KeyStore: Fix the return value when send() or recv() has an error.\n"
    },
    {
      "commit": "2509976269fbd9fbd0ec3561e20fdfbd9b897a09",
      "tree": "49cff0a7068d1c526fb57ee4394d0709cba2fa42",
      "parents": [
        "20cb2310cffb787c54016d50b9b5fe320fc5b025"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Oct 01 01:27:34 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Oct 01 01:42:55 2010 +0800"
      },
      "message": "KeyStore: Update the parameters of generating master keys.\n\nTo improve the security, the parameters to generate the master key has\nbeen changed. Special cares has been taken to prevent from permanent\ndamages of the existing data during the transition process.\n\nChange-Id: I0c93f3de28a9fcd314932675ccfb65a7f11fa3ff\n"
    },
    {
      "commit": "ab6327bc9ab70f3b4c1f509d038474982772207e",
      "tree": "5d44d167659a5a2210bb4e11f2f14ae49d9f277e",
      "parents": [
        "2b133fc07533a853f7de23da4f60a766f4233bed",
        "20cb2310cffb787c54016d50b9b5fe320fc5b025"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 10:11:16 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 30 10:11:16 2010 -0700"
      },
      "message": "am 20cb2310: Merge \"KeyStore: Initialize IV correctly.\" into gingerbread\n\nMerge commit \u002720cb2310cffb787c54016d50b9b5fe320fc5b025\u0027 into gingerbread-plus-aosp\n\n* commit \u002720cb2310cffb787c54016d50b9b5fe320fc5b025\u0027:\n  KeyStore: Initialize IV correctly.\n"
    },
    {
      "commit": "92cb1a026a2d6c594a63c18d8906271147eed85b",
      "tree": "b58a18a7ef4913370754d3d3be4c70284a6b551f",
      "parents": [
        "c79e74ec1d30f95de89568ee645a9b1577ae73b3",
        "2cbb56f961e4893a3bf7ded560d4bdbf45eabd01"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 10:10:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 30 10:10:59 2010 -0700"
      },
      "message": "am 2cbb56f9: Merge \"KeyStore: Fix the return value when send() or recv() has an error.\" into gingerbread\n\nMerge commit \u00272cbb56f961e4893a3bf7ded560d4bdbf45eabd01\u0027 into gingerbread-plus-aosp\n\n* commit \u00272cbb56f961e4893a3bf7ded560d4bdbf45eabd01\u0027:\n  KeyStore: Fix the return value when send() or recv() has an error.\n"
    },
    {
      "commit": "463d75b842dac392ea246df6d710f850f75bd6a6",
      "tree": "b71c241dd7650fc06e931a93619f9a4e77e58300",
      "parents": [
        "2cbb56f961e4893a3bf7ded560d4bdbf45eabd01"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 17:28:01 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 17:28:01 2010 +0800"
      },
      "message": "KeyStore: Initialize IV correctly.\n\nChange-Id: Idbf207dfcc11b92e606cbf4fd3732ed7a8aa3416\n"
    },
    {
      "commit": "c741a2fe41ea33fc386a4d5b932cc081aa92a18c",
      "tree": "548221e5a1edea96182ef93869baef1cd7280d10",
      "parents": [
        "5068ad8d2396d6d7bfbdb1c2c3fe57104744f1f9"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 15:17:58 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 30 15:17:58 2010 +0800"
      },
      "message": "KeyStore: Fix the return value when send() or recv() has an error.\n\nChange-Id: I20a63c76bd29b1a9f8959a6c4fe5a5b8a9a971b4\n"
    },
    {
      "commit": "38ed2e39c54a42dda8f00620f960788f569a3698",
      "tree": "bf7d48a3bb3c372e7348cab154cb73301ce4a87f",
      "parents": [
        "e17c054d34676c25f03b4eb0d8daebe41b84bf6e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 29 13:02:36 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 29 16:55:15 2010 -0700"
      },
      "message": "refactored screenshot code\n\nthe core screenshot function now can capture the screen at any lower resolution\nperforming bilinear filtering.\n\nwe also now have some client code to interface with the screenshot service.\n\nit\u0027s now possible to request a screenshot at a lower resolution.\n\nChange-Id: I5a3b0e431421800e3aad601d9af8f94adffbc71f\n"
    },
    {
      "commit": "1a3038586a3a46d0cdc487fea40ba4f7712d677d",
      "tree": "d48a9261dcd7157a2b33f364be2e8074b45922f1",
      "parents": [
        "e8fd1952089b98e63410e85f734b2727eeee1450",
        "9d59186068891834272c2e3ee6f9c4228af24656"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 13:59:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 13:59:26 2010 -0700"
      },
      "message": "am 9d591860: am 3a9cc8ce: Merge \"Squashed commit of the following:\" into gingerbread\n\nMerge commit \u00279d59186068891834272c2e3ee6f9c4228af24656\u0027\n\n* commit \u00279d59186068891834272c2e3ee6f9c4228af24656\u0027:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "9d59186068891834272c2e3ee6f9c4228af24656",
      "tree": "53ef944ca56796e8f6aada14335ba19dc2f3991e",
      "parents": [
        "b763a6dc41dcce76585c56657903ae72c5422ae1",
        "3a9cc8cef49165d6b1a1eb37b15a0ae21b0042f7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 11:35:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 11:35:22 2010 -0700"
      },
      "message": "am 3a9cc8ce: Merge \"Squashed commit of the following:\" into gingerbread\n\nMerge commit \u00273a9cc8cef49165d6b1a1eb37b15a0ae21b0042f7\u0027 into gingerbread-plus-aosp\n\n* commit \u00273a9cc8cef49165d6b1a1eb37b15a0ae21b0042f7\u0027:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "3a9cc8cef49165d6b1a1eb37b15a0ae21b0042f7",
      "tree": "f531b978ba94698bcbbf5391cb63c5159c3a5ba1",
      "parents": [
        "08cf57d791e50ecafe2728a7617a6487aeb6d6d5",
        "c751eccad38cf46d7478eca85beefecd2c2b4c3b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 28 11:27:33 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 28 11:27:33 2010 -0700"
      },
      "message": "Merge \"Squashed commit of the following:\" into gingerbread"
    },
    {
      "commit": "a57afb6a6c9f4fb451535c3d6f49c3bdf4b59125",
      "tree": "f08d30ca074de4d1247bef04b806e6f14420b674",
      "parents": [
        "747eb00eef784f7df746e61e7e714e4e422eb6d1",
        "2a36a778d384403cd92b1016ed5c860d3f2c3521"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Sep 28 12:17:44 2010 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Sep 28 12:17:44 2010 +0800"
      },
      "message": "resolved conflicts for merge of 2a36a778 to master\n\nChange-Id: Ia70adeef06afddd29c827405fb5657bf9f5a29a3\n"
    },
    {
      "commit": "2a36a778d384403cd92b1016ed5c860d3f2c3521",
      "tree": "e46cf861b3b921aba3913cb4158fba4d2744559c",
      "parents": [
        "4e9243d55ce183542c74550e503ea583643599a0",
        "68ef7f3c3a8deb0e14b0b6325876b23cecc191b3"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Mon Sep 27 16:29:33 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 27 16:29:33 2010 -0700"
      },
      "message": "am 68ef7f3c: Merge \"Move SipService out of SystemServer to phone process.\" into gingerbread\n\nMerge commit \u002768ef7f3c3a8deb0e14b0b6325876b23cecc191b3\u0027 into gingerbread-plus-aosp\n\n* commit \u002768ef7f3c3a8deb0e14b0b6325876b23cecc191b3\u0027:\n  Move SipService out of SystemServer to phone process.\n"
    },
    {
      "commit": "7e54ef71db3320a751571bba5259fba816399421",
      "tree": "ac4c1a7d45c1406366e7f7ba02ec0b0d6117d386",
      "parents": [
        "04a426f5b50a628fb73bc29b003b0e5bece17c27"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Sat Sep 25 22:49:59 2010 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Sep 28 05:19:35 2010 +0800"
      },
      "message": "Move SipService out of SystemServer to phone process.\n\nCompanion CL: https://android-git/g/#change,70187\nhttp://b/issue?id\u003d2998069\n\nChange-Id: I90923ac522ef363a4e04292f652d413c5a1526ad\n"
    },
    {
      "commit": "c751eccad38cf46d7478eca85beefecd2c2b4c3b",
      "tree": "5151726e535c2653987b57d6eaa3f2d8d5bbee5f",
      "parents": [
        "abaabb2c7994e5a5026c2e2bd860d7f21eed0451"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 27 12:04:43 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 27 12:04:43 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 29a4d3effb05a2e074cb0693316ab1977baeb0b6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Sep 27 12:01:32 2010 -0700\n\n    Fully working implementation of MPEG2TSWriter (for AAC and AVC sources).\n\n    Change-Id: I8a32a47565b647bf6c078c520e39565e08ea0d84\n\ncommit f4dec4c3899f3be393508e180d6c07e249d3335e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Sep 27 10:36:31 2010 -0700\n\n    More reliable identification of MPEG2 transport streams. Don\u0027t keep scanning forever in case the stream does not have both audio and video tracks.\n\n    Change-Id: Icc5b4e8be145b2805e8776559546a6818342aea7\n\ncommit 4fe3cc942f9b3d3cf54138b828c41214aa916dd2\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Sep 27 08:23:39 2010 -0700\n\n    test code\n\n    Change-Id: I16560a17661407d06497f99ff88230724bb898af\n\ncommit 64d988b24f49f179a90fa677be11c823959e734b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Sep 23 14:42:52 2010 -0700\n\n    First shot at supporting writing to an MPEG2 transport stream.\n\n    Change-Id: Ie537939a99fa3ddc0c7661c47c18277584817c74\n\nChange-Id: If78fd034af8f6e8ceac8dbeff96d5ecb3f6b96dc\n"
    },
    {
      "commit": "88a5df93668cb2079d10fd55de25a333f5f43842",
      "tree": "321e1c3eeb77386bdb7b9ec0b62a90fa2668d689",
      "parents": [
        "f4d987893a13212dae7c4bca584a2b20bea9ed4b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 26 18:49:45 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 26 19:11:04 2010 -0700"
      },
      "message": "new screencap command\n\nthis captures the framebuffer via surfaceflinger APIs and outputs\nit to stdout. this is intended to be used by adbd.\n\nChange-Id: I0cfa6a47ec121edcd93f46b64870f9a553f653ff\n"
    },
    {
      "commit": "405e012681aa563b1d7b66c671c90ed2deb26e41",
      "tree": "6687aa617fea8213148702c68e4da9083122eb0c",
      "parents": [
        "3011b6617232d1ef7c1687d1db9e780fce978d30",
        "deaa8ff1b10d38add4f7c276e7be2ffc19359a14"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 24 15:58:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 24 15:58:25 2010 -0700"
      },
      "message": "am deaa8ff1: am a7ef18fc: Merge \"Some debugging support.\" into gingerbread\n\nMerge commit \u0027deaa8ff1b10d38add4f7c276e7be2ffc19359a14\u0027\n\n* commit \u0027deaa8ff1b10d38add4f7c276e7be2ffc19359a14\u0027:\n  Some debugging support.\n"
    },
    {
      "commit": "deaa8ff1b10d38add4f7c276e7be2ffc19359a14",
      "tree": "711d6a68fb7f203e709d0407f15fcaa88d04ef49",
      "parents": [
        "d6d83279183db749de07bfdac79fe4180fc848d0",
        "a7ef18fca50d0db99a161d8c7e2d8979f0445503"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 24 15:32:51 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 24 15:32:51 2010 -0700"
      },
      "message": "am a7ef18fc: Merge \"Some debugging support.\" into gingerbread\n\nMerge commit \u0027a7ef18fca50d0db99a161d8c7e2d8979f0445503\u0027 into gingerbread-plus-aosp\n\n* commit \u0027a7ef18fca50d0db99a161d8c7e2d8979f0445503\u0027:\n  Some debugging support.\n"
    },
    {
      "commit": "0b783bc2e4ea2454fda4107d559eefee36b19623",
      "tree": "a4c7b524a64e2b74aff8d950f8abf3cdb2804b94",
      "parents": [
        "253ce3196092de15161c4679cf2bf16b85243979",
        "a1c7b096dfadc9ba7ee2ef432569eb3180f9bf34"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 24 15:20:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 24 15:20:35 2010 -0700"
      },
      "message": "am a1c7b096: am 6d8fae72: Merge \"Instead of just writing one track to the .mp4 file, write all of them (at most 1 video and 1 audio track). Also support httplive URIs in the stagefright commandline tool.\" into gingerbread\n\nMerge commit \u0027a1c7b096dfadc9ba7ee2ef432569eb3180f9bf34\u0027\n\n* commit \u0027a1c7b096dfadc9ba7ee2ef432569eb3180f9bf34\u0027:\n  Instead of just writing one track to the .mp4 file, write all of them (at most 1 video and 1 audio track). Also support httplive URIs in the stagefright commandline tool.\n"
    },
    {
      "commit": "f123e49bf0708719b51a7064ae134c097abe4a54",
      "tree": "73c218afbbede522ca5c7d70b1399cf55609ca5d",
      "parents": [
        "6d8fae722cfb2833dd542b2a5e613582a9096fc6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 24 11:16:23 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 24 13:11:55 2010 -0700"
      },
      "message": "Some debugging support.\n\n- New feature to \"am monitor\" to have it automatically launch\n  gdbserv for you when a crash/ANR happens, and tell you how to\n  run the client.\n\n- Update dumpstate to match new location of binder debug logs\n\n- Various commented out logs that are being used to track down\n  issues.\n\nChange-Id: Ia5dd0cd2df983a1fc6be697642a4590aa02a26a5\n"
    },
    {
      "commit": "a1c7b096dfadc9ba7ee2ef432569eb3180f9bf34",
      "tree": "0fe5e5e4f3c1d4099e3a7ddfc5eed4a91bce2b7e",
      "parents": [
        "2d457a32a653ad06487cf0fef9ef400f3055099a",
        "6d8fae722cfb2833dd542b2a5e613582a9096fc6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 24 11:09:33 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 24 11:09:33 2010 -0700"
      },
      "message": "am 6d8fae72: Merge \"Instead of just writing one track to the .mp4 file, write all of them (at most 1 video and 1 audio track). Also support httplive URIs in the stagefright commandline tool.\" into gingerbread\n\nMerge commit \u00276d8fae722cfb2833dd542b2a5e613582a9096fc6\u0027 into gingerbread-plus-aosp\n\n* commit \u00276d8fae722cfb2833dd542b2a5e613582a9096fc6\u0027:\n  Instead of just writing one track to the .mp4 file, write all of them (at most 1 video and 1 audio track). Also support httplive URIs in the stagefright commandline tool.\n"
    },
    {
      "commit": "3ac01190a73040dab6f23313adfbe2a2a16e19f1",
      "tree": "71c0e8447cd733f6ca472e30fface019fa3b6d5d",
      "parents": [
        "37155854b4d9ca405e5c41c4ab271006a4716193"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 24 09:35:49 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 24 10:09:00 2010 -0700"
      },
      "message": "Instead of just writing one track to the .mp4 file, write all of them (at most 1 video and 1 audio track). Also support httplive URIs in the stagefright commandline tool.\n\nChange-Id: I67b287cf76546191f398939aabe4480d9e79a948\n"
    },
    {
      "commit": "9aa1b24b41f41d863c7c77ab1c47c628ce581281",
      "tree": "7d62d966fa13a77c8aa64693db3a9bbd015177a7",
      "parents": [
        "fe06c42b6189ec6d52a620d9d5b3f7c0d4cd11f1",
        "19fe783d83b10ecfae3494f7b1ceff9584ad3839"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 24 08:38:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 24 08:38:04 2010 -0700"
      },
      "message": "am 19fe783d: am 37155854: Merge \"Proper sync-frame detection for sources that don\\\u0027t already provide it.\" into gingerbread\n\nMerge commit \u002719fe783d83b10ecfae3494f7b1ceff9584ad3839\u0027\n\n* commit \u002719fe783d83b10ecfae3494f7b1ceff9584ad3839\u0027:\n  Proper sync-frame detection for sources that don\u0027t already provide it.\n"
    },
    {
      "commit": "19fe783d83b10ecfae3494f7b1ceff9584ad3839",
      "tree": "2db568cbea93b2a3922c015f8fdec6d54770bb71",
      "parents": [
        "abdbb5c1e5144e11d72367f79816caaa1dc63f8d",
        "37155854b4d9ca405e5c41c4ab271006a4716193"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 24 08:27:33 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 24 08:27:33 2010 -0700"
      },
      "message": "am 37155854: Merge \"Proper sync-frame detection for sources that don\\\u0027t already provide it.\" into gingerbread\n\nMerge commit \u002737155854b4d9ca405e5c41c4ab271006a4716193\u0027 into gingerbread-plus-aosp\n\n* commit \u002737155854b4d9ca405e5c41c4ab271006a4716193\u0027:\n  Proper sync-frame detection for sources that don\u0027t already provide it.\n"
    },
    {
      "commit": "37155854b4d9ca405e5c41c4ab271006a4716193",
      "tree": "94329fbb55de36a6f791a41281554b94188921fe",
      "parents": [
        "933fc94ce1ca4a1ead83dbc2a0f50f7324b28982",
        "b51852709c8b449ec414637cadd3d5207199819e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 24 08:17:20 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 24 08:17:20 2010 -0700"
      },
      "message": "Merge \"Proper sync-frame detection for sources that don\u0027t already provide it.\" into gingerbread"
    },
    {
      "commit": "846df9f5171c4ef32f038cca651b6b9c0b6c3083",
      "tree": "e14bba46d6af691a2832907f6b3f64caac3c736c",
      "parents": [
        "fea28c9367c9d1a48ae56c554dd51a428f2d1b03",
        "8952a4488e81205e3013b6b456dec503e05eebd0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 23 19:08:08 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 23 20:33:19 2010 -0700"
      },
      "message": "resolved conflicts for merge of 8952a448 to master\n\nChange-Id: I9c752a5d10ae8d8e5ead1243b6abd4795204fc0b\n"
    },
    {
      "commit": "8952a4488e81205e3013b6b456dec503e05eebd0",
      "tree": "44370605866624d20b30ff4a167869ce9fa296cd",
      "parents": [
        "00cb6417dcaea2b1d02f47b3afb60c435712161b",
        "287952c35e148811c106bc0f5036eabf20f71562"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 23 16:04:23 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 23 16:04:23 2010 -0700"
      },
      "message": "am 287952c3: Fix issue #3022508: Crash during media scan\n\nMerge commit \u0027287952c35e148811c106bc0f5036eabf20f71562\u0027 into gingerbread-plus-aosp\n\n* commit \u0027287952c35e148811c106bc0f5036eabf20f71562\u0027:\n  Fix issue #3022508: Crash during media scan\n"
    },
    {
      "commit": "287952c35e148811c106bc0f5036eabf20f71562",
      "tree": "baf7ae1e8a086c6e14138536caa925b2a793ce69",
      "parents": [
        "f9ec03c0f5fc2c6eba5bbead24c4eb314c0205be"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Sep 22 22:34:31 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 23 15:59:28 2010 -0700"
      },
      "message": "Fix issue #3022508: Crash during media scan\n\nDon\u0027t kill processes for excessive wake lock use, even if they\nare in the background, as long as they have running services.\n\nAlso fix some problems with this, such as not noting the kill\nin battery stats.\n\nAnd add killing of processes for cpu usage as well, along with\nsome optimizations to computing CPU usage.\n\nAnd fix BatteryWaster to be better behaving for testing these\ncases.\n\nAdd new \"monitor\" command to am to watch as the activity manager\ndoes stuff (so we can catch things at the point of ANR).\n\nFinally some miscellaneous debug output for the stuff here, as\nwell as in progress debugging of an ANR.\n\nChange-Id: Ib32f55ca50fb7486b4be4eb5e695f8f60c882cd1\n"
    }
  ],
  "next": "b51852709c8b449ec414637cadd3d5207199819e"
}
