)]}'
{
  "log": [
    {
      "commit": "81046c8c42ff3b630c6496deafd44f2a07a25463",
      "tree": "b3dfc5164aad0837d4b0dfb238845a5ec84cac28",
      "parents": [
        "13d08515f038db45de6028085993ae6076566867",
        "4e4173b0af52bdf2b5730a5837476e400c5b2040"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 22 13:47:41 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 22 13:47:41 2010 -0700"
      },
      "message": "Merge \"Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.\" into gingerbread"
    },
    {
      "commit": "4e4173b0af52bdf2b5730a5837476e400c5b2040",
      "tree": "8646f0b4c4783b9c14aac8868749856029b5b2a3",
      "parents": [
        "ff0ab64ca49c7a03835d414cd493d5dc37c2eb5e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 22 09:20:13 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 22 09:21:05 2010 -0700"
      },
      "message": "Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.\n\nChange-Id: I110e19d5ce33e597add3ffbd3e3ff3815862396d\n"
    },
    {
      "commit": "e4764521353e898554931a557460fc49209fb0a9",
      "tree": "261afe438ecda0a438afe04c8a5e1c40bf978d63",
      "parents": [
        "3685db7f5dd8a830a4e096404d4924e12697fb78",
        "1bf797857e025e8a71db86fb9e79765a767ec1eb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 21 16:06:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 21 16:06:46 2010 -0700"
      },
      "message": "Merge \"new SensorService\" into gingerbread"
    },
    {
      "commit": "5850a482387f28c306fa06a79b75115c852508fb",
      "tree": "3551e81eb01c93c04408f1864e34166831aa7259",
      "parents": [
        "8138e841a5adb3c5629e263f5a8cb2e936d234ce"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jul 20 16:30:35 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 21 10:40:07 2010 -0700"
      },
      "message": "Add a seek test to the stagefright commandline tool.\n\nChange-Id: Ibf3517afa288fc4c7e2184c11bc7a63594f321df\n"
    },
    {
      "commit": "1bf797857e025e8a71db86fb9e79765a767ec1eb",
      "tree": "e8d1aabae069f2b7368be746b99667eb150363f5",
      "parents": [
        "ff7049ab2886acc73e145367118646f7741ce333"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 23:41:37 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 19 17:57:29 2010 -0700"
      },
      "message": "new SensorService\n\nremove old sensor service and implement SensorManager\non top of the new (native) SensorManger API.\n\nChange-Id: Iddb77d498755da3e11646473a44d651f12f40281\n"
    },
    {
      "commit": "24651682edaf71e8a826f23a7ea09bc97c8072c4",
      "tree": "d3721d203440aaa3d8ac67890bf170a84e832b53",
      "parents": [
        "4055b780bb7e85abcf4754b84e50bf407c45bec8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:41:18 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:43:19 2010 -0700"
      },
      "message": "added BinderService\u003c\u003e template to help creating native binder services\n\nChange-Id: Id980899d2647b56479f8a27c89eaa949f9209dfe\n"
    },
    {
      "commit": "08e83bb3b7cc41f603867acbeb1168019cf535fe",
      "tree": "79594e01ef6c3306b890cb944d6f15d3098075c4",
      "parents": [
        "c9a11088e503b9e3ae52a3f671b2d21f5cd54f06"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    },
    {
      "commit": "45bac57aa00281e6b45756c691c588bdaf762521",
      "tree": "d8640827fb6576adc593b875bfb490fe5eef849d",
      "parents": [
        "a2dd4c17bbe47876b909b09f54505deda379d2b4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 01 08:19:52 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 01 09:08:38 2010 -0700"
      },
      "message": "Support for writing the extracted data to an .mp4 file in the stagefright commandline tool.\n\nChange-Id: I972324a8fc9757e6e8116b0270ec0882106f8733\n"
    },
    {
      "commit": "8d65dd26530c7559082bd738cf930e2806158ab2",
      "tree": "5913164705ac85e30dc983867bc7d4ae31418525",
      "parents": [
        "1e4b9f3936d6f357e89360293e05a0e16d5fa440"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 23 16:40:57 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 23 16:40:57 2010 -0700"
      },
      "message": "Remove most stagefright property overrides, remove VorbisPlayer and VorbisMetadataRetriever as this functionality is now provided by stagefright.\n\nChange-Id: Ieafe75a4550c273ad59b4518d7cd4c0fce0f7cce\nrelated-to-bug: 2370115\n"
    },
    {
      "commit": "8a42f8817de0fc178059bfb1288732d2de65259d",
      "tree": "e2c00463abe2431def799d0bbec59902cc09409c",
      "parents": [
        "e5671bfe51aeaac823cd94f8e04f01e37b4c2cd6",
        "14e5758bc35cf1cfb35bf9ec58dd2e435b224fc2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 22 10:11:04 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 22 10:11:04 2010 -0700"
      },
      "message": "Merge \"Make sure sine: is supported again in stagefright commandline tool.\" into gingerbread"
    },
    {
      "commit": "14e5758bc35cf1cfb35bf9ec58dd2e435b224fc2",
      "tree": "31a1925b45f2e8dcba9e76902956af7d31bb60eb",
      "parents": [
        "e47e3f3855a062ba0338a57eeda2f12a0f7a1fa8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 21 09:11:51 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 21 13:53:36 2010 -0700"
      },
      "message": "Make sure sine: is supported again in stagefright commandline tool.\n\nChange-Id: I703f1a8b7556543ef71b141dc8e38d8b82d8c6dc\n"
    },
    {
      "commit": "27b3a7a75960d026655f3acd1de8a672e80a5776",
      "tree": "cc5036a00b976b7757f26212abf49ed11f779cd9",
      "parents": [
        "f25c560dcdc0c04e11152fff11f521dae03522cd"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Jun 18 13:07:53 2010 -0700"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Mon Jun 21 12:56:35 2010 -0700"
      },
      "message": "Start of work on passing around StrictMode policy over Binder calls.\n\nThis is (intendend to be) a no-op change.\n\nAt this stage, Binder RPCs just have an additional uint32 passed around\nin the header, right before the interface name.  But nothing is actually\ndone with them yet.  That value should right now always be 0.\n\nThis now boots and seems to work.\n\nChange-Id: I135b7c84f07575e6b9717fef2424d301a450df7b\n"
    },
    {
      "commit": "c0668843d31b279b4e9ea40d1aaf2c2d1afbe7f5",
      "tree": "6bd3c842868364fc50b006a67066950a2bd93ee1",
      "parents": [
        "66b89a62aa6d5599ad4d11d891b5028587d4c6be"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jun 10 11:16:10 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jun 10 11:27:06 2010 -0700"
      },
      "message": "Simplify the code in the stagefright commandline utility.\n\nChange-Id: Ia222b25ef12af34f6434421fd96b67eca800d1ab\n"
    },
    {
      "commit": "7e76ff1c409bc22e89ed09ef90161164dae40838",
      "tree": "fdb5a34ac33b3c79228bd3fb080deb396814ff7b",
      "parents": [
        "55f8209da3048768a6dc24929dec8798e8ddf077"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 09 12:21:31 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 09 12:21:31 2010 -0700"
      },
      "message": "Fail gracefully if the user fails to supply necessary args to bmgr\n\nFixes bug #2755355\n\nChange-Id: I4690756bb5077a6b4bbbfb232cd852cad43cef77\n"
    },
    {
      "commit": "770492cb2b19f6a36ad748cd05fbedfbb9a67dfa",
      "tree": "3c87a789492e52b3c26b1de9608f42690b86c2cd",
      "parents": [
        "cdfd5fe2c89a30a31f9de5a5481e8997f014a89b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 28 14:22:23 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 28 17:19:16 2010 -0700"
      },
      "message": "more clean-up in preparation of bigger changes\n\nthe most important change here is the renaming of\nISurfaceFlingerClient to ISurfaceComposerClient\n\nChange-Id: I94e18b0417f50e06f21377446639c61f65f959b3\n"
    },
    {
      "commit": "4979601f88154bdeda4cc5277940771ba6597c0f",
      "tree": "3c1dc9b7ffe3a0fe0a121d7313e6215f5f6d51c8",
      "parents": [
        "c05ab485e415ffd84e4790a17699b4503fa3fdfb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Apr 21 15:47:15 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 16:32:29 2010 -0700"
      },
      "message": "Make the -o option actually terminate.\n\nChange-Id: I91b70ee5c3e1fc9b8bb645e219af296867692e65\n"
    },
    {
      "commit": "c6a16327328cf04066ce948c3fbad34fdf1fbff4",
      "tree": "6339ed611cdc10909b46591224b1c99651b36ee4",
      "parents": [
        "cf7d2d50a4b99e6729c02cc2257bd6bd62814c6a",
        "3c16154a3309fe250177d69f3fcd5b6e9a82d1b3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 11:14:37 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 20 11:14:37 2010 -0700"
      },
      "message": "am 3c16154a: am 2723e092: Merge \"Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\" into froyo\n\nMerge commit \u00273c16154a3309fe250177d69f3fcd5b6e9a82d1b3\u0027 into kraken\n\n* commit \u00273c16154a3309fe250177d69f3fcd5b6e9a82d1b3\u0027:\n  Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n"
    },
    {
      "commit": "3c16154a3309fe250177d69f3fcd5b6e9a82d1b3",
      "tree": "e731510c4a2a0d1f008f13032847f6027cab50ed",
      "parents": [
        "3716ea04d9fd59ff95bacdf6efac4ab5583e13fc",
        "2723e09229ce916724861ab90b6b8fc7c9ea9f2e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 11:13:20 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 20 11:13:20 2010 -0700"
      },
      "message": "am 2723e092: Merge \"Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\" into froyo\n\nMerge commit \u00272723e09229ce916724861ab90b6b8fc7c9ea9f2e\u0027 into froyo-plus-aosp\n\n* commit \u00272723e09229ce916724861ab90b6b8fc7c9ea9f2e\u0027:\n  Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n"
    },
    {
      "commit": "1919e5af3d8eb8bcf08e50efae2e79eaf065cf6b",
      "tree": "45b94c851309676baddec07b7879f97b59d024c7",
      "parents": [
        "dc737ca986ed9055b4bb39c67d470b6886522ca6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 10:37:06 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 20 10:37:06 2010 -0700"
      },
      "message": "Better handling of codec initialization failure in the player and thumbnail extractor. Return a runtime error instead of asserting if the software MPEG4/H.263 decoder fails to initialize.\n\nChange-Id: I5cba02ee85a41e43c2623053de40f26e2cf2efe4\nrelated-to-bug: 2699505\n"
    },
    {
      "commit": "627356cee467fad0335b2bc8cc058a3784f0bf63",
      "tree": "8e0e58c9124fd384217fc74851114ddb8a66c329",
      "parents": [
        "0b6defefb961b2c61ac50f16185f35cef1de870e",
        "d6c0bb0f0f3827f1c336db20ac9dc0eb90cd46fa"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 08:33:27 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 19 08:33:27 2010 -0700"
      },
      "message": "am d6c0bb0f: merge from open-source master\n\nMerge commit \u0027d6c0bb0f0f3827f1c336db20ac9dc0eb90cd46fa\u0027 into kraken\n\n* commit \u0027d6c0bb0f0f3827f1c336db20ac9dc0eb90cd46fa\u0027:\n  Removed Calls to deprecated APIs\n"
    },
    {
      "commit": "d6c0bb0f0f3827f1c336db20ac9dc0eb90cd46fa",
      "tree": "8409eea06150b5892a243b80d7ea407e63310133",
      "parents": [
        "aa2fe148496858e17d0ffd2b8d5d29b89d400934",
        "2b9a49a30d2ce1176cbd90741897705bec32d0bd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 08:28:32 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 19 08:28:32 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I0598edad283a177a5ddcc30e20d2284503e6038e\n"
    },
    {
      "commit": "f1f9fcdbe961fdc8e71604d7a90983f7c7036127",
      "tree": "3fc8cf24b23e024ae7a711a31e3aabcc89e58fa4",
      "parents": [
        "4ec730cabb68ee8347c6aa5dc929b09651275aca"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Apr 15 10:58:48 2010 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 18 16:07:16 2010 -0700"
      },
      "message": "add execution permission to \"input\" script (DO NOT MERGE)\n\nAlthough when building system image, \"input\" script will be given execution\npermission, adb sync will push a version without x onto device from build\ntree. Refer to frameworks/base/cmds/svc/svc, which has execution bit set.\n\nChange-Id: Ie82df2f0d3150c3df9498399f2c446f07ea89ca5\n"
    },
    {
      "commit": "746a95ab7145a1c7583d1f2d6004a508cd7a31dc",
      "tree": "067e8da2b4c6ecdd5d4f6327ee0aa36387285490",
      "parents": [
        "1152df7e82f1501e72aee1641d028bd7201f6d0b"
      ],
      "author": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon May 17 21:16:20 2010 +0200"
      },
      "committer": {
        "name": "Christian Mehlmauer",
        "email": "FireFart@gmail.com",
        "time": "Mon May 17 21:16:20 2010 +0200"
      },
      "message": "Removed Calls to deprecated APIs\n\nChange-Id: I3f9b6a8d3c8a050156a6cc7ea0eb9de33b82f79a\n"
    },
    {
      "commit": "c65ede9bf1500b8b0920703bc76aba661d513f3a",
      "tree": "207412e5eb3a086dc2915f94e55ce3d3e39553e7",
      "parents": [
        "b6c459276f222e01777380c4c1e3a31680e561ec",
        "bd5356468a5e6823fe4dce040ee75fbef66488dc"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Apr 27 11:21:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 27 11:21:17 2010 -0700"
      },
      "message": "am bd535646: am 57fff78a: dumpstate: Add blocked process wait-channel info to bugreport\n\nMerge commit \u0027bd5356468a5e6823fe4dce040ee75fbef66488dc\u0027 into kraken\n\n* commit \u0027bd5356468a5e6823fe4dce040ee75fbef66488dc\u0027:\n  dumpstate: Add blocked process wait-channel info to bugreport\n"
    },
    {
      "commit": "57fff78a70c82ca09beb91c4f92d97b6f0b897e4",
      "tree": "2ee1dffe8135c478ff6bd1f60c8539eacff1bf01",
      "parents": [
        "2e4b98dcd88f14fdb35e46236ec916493c570f28"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Apr 27 10:53:35 2010 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Apr 27 10:53:35 2010 -0700"
      },
      "message": "dumpstate: Add blocked process wait-channel info to bugreport\n\nFix for http://b/2630027\n\nChange-Id: I3606d8bf95c58df2b290dbd13f48538d82f16088\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "69acb6b746c82f88607b3365795ebb3279188eed",
      "tree": "cd36e73daeba0b2f24ba77fde8643e98c866eeca",
      "parents": [
        "d4dd85d532dcd383a2f6b421e747b5ab07246d19"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Apr 16 12:52:47 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Apr 16 12:55:48 2010 -0700"
      },
      "message": "Unify am startservice commands.\n\nThis replaces the implementation with an equivalent one.\n\nChange-Id: I1343ddee9414a67906cd426b8381ddbace873894\n"
    },
    {
      "commit": "d4dd85d532dcd383a2f6b421e747b5ab07246d19",
      "tree": "2bcf1bde78fe3c0f2c470da8779653512539dc7a",
      "parents": [
        "69e398bd14fc909bb5f854c435fd210ae0974748"
      ],
      "author": {
        "name": "Anthony Newnam",
        "email": "anthony.newnam@garmin.com",
        "time": "Wed Apr 14 14:34:41 2010 -0500"
      },
      "committer": {
        "name": "Garmin Android technology group",
        "email": "android@garmin.com",
        "time": "Wed Apr 14 14:35:11 2010 -0500"
      },
      "message": "Allow Am to start services\n\nChange-Id: I31d066ae2c980cc293e55034446a63a0f42088ad\n"
    },
    {
      "commit": "d760afc3b59cdeaa866261f5acc27510510d69d1",
      "tree": "63afd2874a3a2fe2348dc9126c92338790978f8e",
      "parents": [
        "ebaa935e2dd534d46ae79091679e9c2d36710f81",
        "30e9c2d4db145e02b5312ce29606b03dd78349d3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 12:23:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 13 12:23:28 2010 -0700"
      },
      "message": "am 30e9c2d4: am db281311: Merge \"Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\" in\n\nMerge commit \u002730e9c2d4db145e02b5312ce29606b03dd78349d3\u0027 into kraken\n\n* commit \u002730e9c2d4db145e02b5312ce29606b03dd78349d3\u0027:\n  Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\n"
    },
    {
      "commit": "662292ae2d4f50990d3f2a944b9d9059775b3cc0",
      "tree": "032b484910bb96022421dae5e4565a89ee630f78",
      "parents": [
        "15683534d1f1ca76a9a59ed921219db46ff5f800"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 09:58:39 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Apr 13 12:04:05 2010 -0700"
      },
      "message": "Better diagnostics in the stagefright commandline tool, support for playing sine-tones using a filename of \"sine:[samplingrate]\", i.e. sine:44100. Support for playing audio through to the speakers by using \"-o\" in addition to \"-a\".\n\nrelated-to-bug: 2553359\nChange-Id: Ic49eb89feb62474d9513bc21571e0e8fe3a15e0b\n"
    },
    {
      "commit": "71c27d991ad9f07cc7e28545bf6cd2b133668cd5",
      "tree": "f636095d8f397a9ef8f7ecb5b5bd9545ce56d038",
      "parents": [
        "ab88ea9503e0d84d739e6f232ebe740a5b8959a8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 19 11:43:15 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 13:47:58 2010 -0700"
      },
      "message": "Various fixes to enable recording on passion and nexus1.\n\nChange-Id: I75a461c9882e2449082ad754ee7b231c1ceec039\n"
    },
    {
      "commit": "3e543abbc18eec03ba7300b53cd65dc1c30fd40b",
      "tree": "f7d2a25ffa4c6c4b97a4cab005c597a895ee76ca",
      "parents": [
        "d49c455cc97d5fcdd8af497dc2ba85efdc719959",
        "a599469f9095532cac95a8e7600412f156b88f1c"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 07 21:32:30 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 07 21:32:30 2010 -0700"
      },
      "message": "am a599469f: am c2461be6: Merge \"Fix 2579461 Move install location values to secure settings. Diable attribute for UI. Set default value to auto. Add command line interface to set install location via pm.\" into froyo\n\nMerge commit \u0027a599469f9095532cac95a8e7600412f156b88f1c\u0027 into kraken\n\n* commit \u0027a599469f9095532cac95a8e7600412f156b88f1c\u0027:\n  Fix 2579461\n"
    },
    {
      "commit": "40e472521a544f26cb6956995788f7c36fff1404",
      "tree": "b579a480e80d8ac15128c31c142b22d0938a44f8",
      "parents": [
        "4b18ced6b5409bb9dd4013c06b9562b76a062939"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 07 16:15:50 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Apr 07 20:43:54 2010 -0700"
      },
      "message": "Fix 2579461\nMove install location values to secure settings.\nDiable attribute for UI. Set default value to auto.\nAdd command line interface to set install location via pm.\n\nChange-Id: I80e97b3d24845adad7102f40dcbe238f00efa406\n"
    },
    {
      "commit": "b93107daad8f839b4b234b24af475092168fac89",
      "tree": "f7d0919aa6ce0c600603ee09f660c2dcd2dd6616",
      "parents": [
        "cbc7fe0df6774621206b0ccbb85294bc4d2d70ed",
        "ccb2c6cf3a2bf2ddbf5cd261bd22ee02f0bf7aa7"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Apr 06 12:43:23 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 06 12:43:23 2010 -0700"
      },
      "message": "am ccb2c6cf: am 1bfcaa59: Merge \"Fix \\\u0027bmgr restore\\\u0027\" into froyo\n\nMerge commit \u0027ccb2c6cf3a2bf2ddbf5cd261bd22ee02f0bf7aa7\u0027 into kraken\n\n* commit \u0027ccb2c6cf3a2bf2ddbf5cd261bd22ee02f0bf7aa7\u0027:\n  Fix \u0027bmgr restore\u0027\n"
    },
    {
      "commit": "1398e27bb0f5768cbbd5b9d9fd7c8675da63ccb0",
      "tree": "91eea1fbb15f2e7a96df53d2268aa62867a81039",
      "parents": [
        "fede9aed2b1f0b6316e18cbfa58be593fa7eb14c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Apr 06 12:17:12 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Apr 06 12:17:46 2010 -0700"
      },
      "message": "Fix \u0027bmgr restore\u0027\n\nZero means success.  Fixes bug #2573785\n\nChange-Id: I11bd4d85aa2b3a061aa37e085790ee8cd52d50a2\n"
    },
    {
      "commit": "e47009aabd269176b8748a5308de89bafec25c16",
      "tree": "fb1820a8bf0e6312db4a538fbd7c018714c80bfc",
      "parents": [
        "265bffa901049f55f28ae1dbb414cb66276f726b",
        "0f7c543cc48d287591b5638a15bf8ca977e162a2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 14:14:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 02 14:14:24 2010 -0700"
      },
      "message": "am 0f7c543c: am eb6e3edc: Merge \"Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.\" into froyo\n\nMerge commit \u00270f7c543cc48d287591b5638a15bf8ca977e162a2\u0027 into kraken\n\n* commit \u00270f7c543cc48d287591b5638a15bf8ca977e162a2\u0027:\n  Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.\n"
    },
    {
      "commit": "a4357addf609c4a88867c93db135d531b2c40352",
      "tree": "98c7ac87bf0ce88999a044ffcbfd848690733471",
      "parents": [
        "d9c16c37ea28933973f32cb434f770226266b675"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:49:54 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:55:31 2010 -0700"
      },
      "message": "Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.\n\nChange-Id: I90c7db6656a53339c5d454336548c4f00d0d9064\nrelated-to-bug: 2548426\n"
    },
    {
      "commit": "4caee4f7199d43b98badb02c9b746af66062cef2",
      "tree": "2f86cde099635d98cc44e51eac687dd4ae629544",
      "parents": [
        "2fa4ab04b43ea1e377d2921f6e5112025a6f1439",
        "b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 30 13:17:23 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 30 13:17:23 2010 -0700"
      },
      "message": "am b3f7fe44: am 22375e4a: Merge \"Make RestoreSession.getAvailableRestoreSets() asynchronous\" into froyo\n\nMerge commit \u0027b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c\u0027 into kraken\n\n* commit \u0027b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c\u0027:\n  Make RestoreSession.getAvailableRestoreSets() asynchronous\n"
    },
    {
      "commit": "2d449afe3d075020bdd1115bcc15c9383cbce122",
      "tree": "d7c71c9a74e317319de947f3e3fe3ee673f0c559",
      "parents": [
        "ae405d56215e4ab43e8210b66e741a0bf9d5edcf"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Mar 29 19:14:24 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 30 12:42:35 2010 -0700"
      },
      "message": "Make RestoreSession.getAvailableRestoreSets() asynchronous\n\nThis transaction can involve the transport having to query a remote backend\nover the wire, so it can take a Long Time(tm).  Make it main-thread-safe by\nmaking it asynchronous, with the results passed as a callback to the invoker\u0027s\nRestoreObserver.  We also make the IRestoreObserver callback interface\nproperly oneway.\n\nBug #2550665\nBug #2549422\n\nChange-Id: If18a233a0a3d54c7b55101715c9e6195b762c5a0\n"
    },
    {
      "commit": "1f4df90bfab8ca42eabe95f19eadff3432eee7fd",
      "tree": "13d9bc806e8850259b2b939d7ee9cf02651bf9d7",
      "parents": [
        "59fc58dc3f164e33a96aee09505fac5818747cb6"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Mar 26 18:44:14 2010 -0700"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Mar 29 18:12:24 2010 -0700"
      },
      "message": "DO NOT MERGE\nRemoving unused features from source tree.\nPlease refer to Bug#2502219.\n\nChange-Id: I879c29bfd5ffe933f64bb1082aaae7c956450a5a\n"
    },
    {
      "commit": "5ef402baafc4818ccdf2aaec5da9cf25dd1c0e12",
      "tree": "6678df993ee5d0af105bcb948472d747fd27059d",
      "parents": [
        "9c3cee9824026764275e4d84ba9b5d9fdc5da690"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 26 17:17:25 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 26 17:17:25 2010 -0700"
      },
      "message": "Fix issue #2538228: Intents targeting browsers constantly nagging\n\nSome applications are setting the MIME type field for an http:\nintent, which is technically wrong because the recipient opening\nthe URI will get the MIME type from the header.  This was hitting\na bug when we compute the intent filter when setting the\npreferred activity, where we have to set both the MIME type and\ndata URI for the intent filter.  (For file: and content: URIs\nonly the MIME type is needed, since these can be opened directly\nthrough ContentResolver so everyone is presumed to be able to\nhandle them.)\n\nChange-Id: Ia7025e6859e9c90997bf56c2c80f225fca7a2007\n"
    },
    {
      "commit": "9c3cee9824026764275e4d84ba9b5d9fdc5da690",
      "tree": "a68cba5a6d4dc4dc747c4089a2426dcfe5550b77",
      "parents": [
        "a3de74555120cc4dc205a3f93ef44c843b8d64a8"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 25 16:06:43 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 26 14:26:44 2010 -0700"
      },
      "message": "API CHANGE: Backup/restore API changes requested by the API Council\n\n* @hide the android.app.backup.RestoreSession class and functionality\n\n* Provide a public method on android.app.backup.BackupManager that apps\n  can use to request a restore pass of their last-known-good dataset.\n  The new method is called requestRestore().\n\n* Provide the name of the package being restored, not just its ordinal,\n  in the RestoreObserver\u0027s onUpdate() callback.\n\nPart of bug #2545514\n\nChange-Id: I9689bf8d6e2b808b4ee412424a36a835be0a5ca8\n"
    },
    {
      "commit": "1a189a8232d9765e184ba4eef72c651bc868814f",
      "tree": "541750cd9148693ad0732d8854ad9b3df22efbe0",
      "parents": [
        "b43bdf41f1adf34a05625b59d4bf8c8bc24f88df"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 24 13:49:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 24 13:49:20 2010 -0700"
      },
      "message": "QueryCodecs now returns the names of the software codecs (non-OpenMax) as well.\n\nChange-Id: Ic4cd61f4dd722fb0dda544ffaa5615e87e3a4d40\nrelated-to-bug: 2541647\n"
    },
    {
      "commit": "e99bb5f10b90736d10cee9729b56cba156fc0921",
      "tree": "2977919e3fb3e0fcfeb5954240a2ee37abb55617",
      "parents": [
        "cbf953ed09b036441d90e14b0723a2ea417b3f35"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Mar 19 14:36:49 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Mar 22 10:49:49 2010 -0700"
      },
      "message": "Add new method call back in MountService.\nPackageManager invokes this call back when its done handling\nthe media status update.\nAdd new uid check for updateExternalMediaStatus\nChange killPids method in ActivityManager.\nRemove mountsd command in Pm.java We cannot arbitrarily enable/disable\npackages in PackageManager now.\n\nChange-Id: I28dcba4afd2b4486f68abdaa1628a31b66544c91\n"
    },
    {
      "commit": "19b9e2e839ba0a00d8b4076dbff181986200421d",
      "tree": "e5595aeb628830a5354ae191a675054da0e02fd7",
      "parents": [
        "f4418b0113ff63c82348844f4c945c81aa9157ad",
        "c277f2c43dfae5d28c345663fa7b970dd5bc383e"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Fri Mar 19 16:26:52 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 19 16:26:52 2010 -0700"
      },
      "message": "Merge \"Fix bcm4329 FW dump in bugreport for user-debug build\""
    },
    {
      "commit": "c277f2c43dfae5d28c345663fa7b970dd5bc383e",
      "tree": "52aefbd856cae4c4e8c52de8fabccee9416b2369",
      "parents": [
        "6d33c5adde49eabeb2c31996700d4cd4cf9e3e05"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Fri Mar 19 16:22:07 2010 -0700"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Fri Mar 19 16:22:07 2010 -0700"
      },
      "message": "Fix bcm4329 FW dump in bugreport for user-debug build\n\nChange-Id: I56dfdc700db5704a91015ddcdc2adb0952b097ba\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "738b75864123b85c0aec2433571d74ea09df9b02",
      "tree": "6e18f316ea12bbafa6306be505e8ecab7106e6d4",
      "parents": [
        "6d33c5adde49eabeb2c31996700d4cd4cf9e3e05"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 17:45:15 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 18 17:45:15 2010 -0700"
      },
      "message": "Only backup real files.\n\nFixes hang when backing up droid.\n\nChange-Id: Ie8b5c9f76c39c2e6c2cdf1e3b03f56ae37912bad\n"
    },
    {
      "commit": "d3dd518baf87f06a571e56d9a127b043cf719e23",
      "tree": "a268fe0a59afe5c4615423d9dd27ea13280cfb8f",
      "parents": [
        "f43eab142df7d3096f299d34c9e5713200332392",
        "14b6abda1309631d49d4bebbb0317a7e1dfc0a50"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 18:50:29 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 17 18:50:29 2010 -0700"
      },
      "message": "Merge \"Add new install flag to install on internal flash only Change default install location policy for new flag. New error code for media unavailable.\""
    },
    {
      "commit": "14b6abda1309631d49d4bebbb0317a7e1dfc0a50",
      "tree": "bee361e635743a09bb7253fef333d6fb94df6322",
      "parents": [
        "d246ca811575eee9122070648e93b7484f6edd81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 08:37:04 2010 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 17 18:43:31 2010 -0700"
      },
      "message": "Add new install flag to install on internal flash only\nChange default install location policy for new flag.\nNew error code for media unavailable.\n\nChange-Id: I5a5d0828b067692b2b94a15a2bcc7534f796c1a2\n"
    },
    {
      "commit": "9e3f8c631e8406d905e79523ab8853324cc02abc",
      "tree": "c80036f79e281aedc5c273f2d1be978ba2716705",
      "parents": [
        "4889fb75d463278241d5174baac05a41dbef25a8"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Mar 17 09:50:25 2010 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Mar 17 09:50:25 2010 -0700"
      },
      "message": "dumpstate: Remove df from bugreport and add vold system dump\n\nChange-Id: Ib5a7611019c13bae04f6bf099c4c598f1662890a\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "0df3c165b516f71d621e79b98bf731efa441dcd4",
      "tree": "b79363f98a77ad89ae574e837ebea011f75dca39",
      "parents": [
        "9ab518ad793385f8405edf19363fe825fb64f5f8"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Mar 17 16:31:20 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Wed Mar 17 16:31:20 2010 +0800"
      },
      "message": "keystore: rephrase the comment to make the usage more clear.\n\nChange-Id: I529ca7ed443060089c95fe96dd230288be4b6c96\n"
    },
    {
      "commit": "8a9ab24a5c9b595ac0268fcade4b5bbfe7c45c2d",
      "tree": "f445dbf1504f02783b550a80a01ee06d45fbcb4a",
      "parents": [
        "50fdbef2fbcd390035517090bc54220c265f5c75"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Mar 11 16:49:16 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Mar 16 16:36:26 2010 -0700"
      },
      "message": "Do storage checks before initiating a move.\nAdd new remote method to check for insufficient error conditions.\nSome fixes in MountService when updating media status on PackageManagerService\nFix size calculation condition in installd.\n\nAdd new error code if media is unavailable.\nNew tests for testing error codes.\nSome additional debugging statements in MountService.\n\nChange-Id: Ibfe90d5ed6c71d57f9c1c67806f38b5ae9ecdfbf\n"
    },
    {
      "commit": "d73a81c28b386b64b0fb68115b60b4a0abdbbfad",
      "tree": "db79c6916dd0f923a1958e0ba17dd00569cf68ba",
      "parents": [
        "4f33d80056dc8a185176085a211bd31f143686c4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 14:34:17 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 14:34:17 2010 -0700"
      },
      "message": "Properly use a long long literal to avoid under/overflow during fps computation.\n\nChange-Id: I04730c86d43d6192ded3e779631effda9dd06e63\n"
    },
    {
      "commit": "1af34becb11ecf339511e61b7860cc6a6de848ae",
      "tree": "b4ae8616e4c989e35ebcd05d9433461dd23b75a8",
      "parents": [
        "1a3786a3e34112e3e68e6a9b07ba72802867a002"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 09:05:38 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 09:05:38 2010 -0700"
      },
      "message": "HTTPDataSource must be connected before it is usable. Fix this in the stagefright tool.\n\nChange-Id: I5313b2cb7839233d51b2d37a03b6598b0760c2e0\n"
    },
    {
      "commit": "e4bfb78ae3c4738d21e5016a51844429c4647639",
      "tree": "e73f629a0ff61fb77393c30018332878f855e190",
      "parents": [
        "26b1ef95833665fb83195caad010566c8a9e0199"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 21:43:34 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 11 21:43:34 2010 -0800"
      },
      "message": "The return of rawbu.  For other nefarious purposes.\n\nChange-Id: I3e9c892cb6ee79e85bc4d9b817f4ad9942a73b4e\n"
    },
    {
      "commit": "5e1573601b1c216ac647d7f590fa57496db74adb",
      "tree": "32e69652e99a7fc9df7c56e9da1a07ab2a152f01",
      "parents": [
        "8af295af91d491876a816f489d4cad2cd89054ec",
        "089262dc022d87e31eefc536025be6c015c7ebde"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 16:15:35 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 16:15:35 2010 -0800"
      },
      "message": "Merge \"Dont include code size for apps on sdcard. Use constants defined in PackageHelper for user preferences to install auto, internal, external. Set default install location to external. Update settings db version number\""
    },
    {
      "commit": "089262dc022d87e31eefc536025be6c015c7ebde",
      "tree": "2c4706dc952c2c3a4407427579a01057564fab52",
      "parents": [
        "e182a92ae408f27f46d15de01c8a263cfe6f9246"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 14:19:21 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Mar 10 16:08:51 2010 -0800"
      },
      "message": "Dont include code size for apps on sdcard.\nUse constants defined in PackageHelper for user preferences\nto install auto, internal, external.\nSet default install location to external.\nUpdate settings db version number\n\nChange-Id: Ib5110c9377990e20a48cee923e55898dfddfd1e6\n"
    },
    {
      "commit": "e38cd3926d445512f93958f5f1bcf90003055546",
      "tree": "e5ec8419c882b50e8023af9eaafa1ce736422815",
      "parents": [
        "e182a92ae408f27f46d15de01c8a263cfe6f9246",
        "edfeb1a3f5b62061cc628c6ebc38fb163e4a8151"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 13:33:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 13:33:51 2010 -0800"
      },
      "message": "Merge \"Extend stagefright tool to extract either album art or video frame.\""
    },
    {
      "commit": "edfeb1a3f5b62061cc628c6ebc38fb163e4a8151",
      "tree": "dd9474bcb42b02ff448cd8f45ff6c59421a88c23",
      "parents": [
        "1ce986767ae5998ece6810c2933d0b274c529744"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 11:07:12 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 11:07:12 2010 -0800"
      },
      "message": "Extend stagefright tool to extract either album art or video frame.\n\nChange-Id: Iab50924e37a1aad057470a349c8f1a81858424e9\n"
    },
    {
      "commit": "d951d88c17661cf95391ca3de2a72fbe8afedb69",
      "tree": "20d217517aacbf3a9f8373ec6dc4ba9e628febf5",
      "parents": [
        "fe62d04c30e7b3abe408b56c7744c7f547c57640"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 09 18:38:25 2010 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 09 18:38:25 2010 -0800"
      },
      "message": "Use proper config to enable LVMX.\n\nChange-Id: Ic8792e2b48110b2e91903e2e407b828a97d6e531\n"
    },
    {
      "commit": "871c16cec850c042c61aa06a7ffc0e1965867bcf",
      "tree": "4eb07e9acdcaa01d10d5d3458c2659f715379c34",
      "parents": [
        "c10275abd6a494c93a025f683dde104a5d4f2793"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 05 12:18:01 2010 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 09 14:16:01 2010 -0800"
      },
      "message": "Initial version of LifeVibes integration.\nAlso changed tabs to spaces in other audioflinger files.\n"
    },
    {
      "commit": "ca14320fa28b818d755cff8f0c2ff4c780d30105",
      "tree": "c12dc28487f09261933b9e7e9188914219e81a05",
      "parents": [
        "eb6a592a283012fa3a93aad4a137b93ab9aa07ee",
        "efd13938013099e58f4dcbf818f508c585547817"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Mar 08 19:23:01 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 19:23:01 2010 -0800"
      },
      "message": "Merge \"More consistent and clear traces.txt reporting.\""
    },
    {
      "commit": "efd13938013099e58f4dcbf818f508c585547817",
      "tree": "af0abf19e17bd334fdd2bf6a6a65110d4c403ade",
      "parents": [
        "823961a3191b365cabf3745ee2f5f0cff059cdff"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Mar 08 13:04:13 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Mon Mar 08 19:21:32 2010 -0800"
      },
      "message": "More consistent and clear traces.txt reporting.\n\nPrint ANR traces.txt even if it\u0027s old.\nPrint more detailed error messages about VM trace dumps.\n\nChange-Id: I067c90b8f3b3647b6136528eff3120e6cfea5715\n"
    },
    {
      "commit": "3eeffc1857d4340f8f87ab57ede899b86cf11c54",
      "tree": "ea864671559527f15ae8faa82756ca10db50fa23",
      "parents": [
        "56ec3c888a19b16ef056c157ed63d94adef7f201",
        "4165dd21592c958bacc97043d56b1ea914ab94c9"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:50:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 17:50:56 2010 -0800"
      },
      "message": "Merge \"keystore: add AID_ROOT into the user table.\""
    },
    {
      "commit": "4165dd21592c958bacc97043d56b1ea914ab94c9",
      "tree": "a0be4daa704d767d32fe77e293479d96a009bbe8",
      "parents": [
        "c6120193efebf426186b24520d70ec3e4a4aeadf"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Mar 09 09:41:32 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Mar 09 09:44:07 2010 +0800"
      },
      "message": "keystore: add AID_ROOT into the user table.\n\nChange-Id: I4b9cf24d75ca79583d7913bbb2c33745a2316cde\n"
    },
    {
      "commit": "54aa577ea28999de2f30bc34daed0cc821934409",
      "tree": "c079066ec4cf29deb1707ed4b511ccef8d01a29f",
      "parents": [
        "239038094493b3b1ac262222d1f21254b48d4fc6"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Mar 08 08:58:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Mar 08 08:58:03 2010 -0800"
      },
      "message": "dumpstate: Add secure container + mounted filesystems to bugreport\n\nChange-Id: I0cb465da86976f5cce3594c4bb846aa6510c52d6\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "61b09cbc027bdfe478ac79c59494953b6cea27dc",
      "tree": "912198e5470e78af1dcdbcfbe1740fa59ef2f4f3",
      "parents": [
        "c6120193efebf426186b24520d70ec3e4a4aeadf"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:21:35 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Mar 08 17:21:35 2010 +0800"
      },
      "message": "keystore: allow \u0027\\0\u0027s in keys and add guards for cplusplus.\n\nChange-Id: I0af6ed7c5d51ce4ca39cb837e475942800cf6e2d\n"
    },
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "485c3a16cef38136a821e79a5fe37df4e1779d28",
      "tree": "b8c6d546e9bb365c347ffc0f936a1f18e5ab2f3a",
      "parents": [
        "4a3c3b23d0aa87a68088976b4f397be116cd2338"
      ],
      "author": {
        "name": "Christian Sonntag",
        "email": "cxs@google.com",
        "time": "Thu Mar 04 14:59:04 2010 -0800"
      },
      "committer": {
        "name": "Christian Sonntag",
        "email": "cxs@google.com",
        "time": "Thu Mar 04 14:59:04 2010 -0800"
      },
      "message": "fix hex parsing of bmgr\n"
    },
    {
      "commit": "c1552397be706c243338389c628a44eee6011eae",
      "tree": "a6854366e2a68e37400a22ab95c7d9496007a4fa",
      "parents": [
        "6be0fc100e46bc1cd4d9eda6c63a962d1c24dbd4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 16:19:01 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Mar 03 16:26:26 2010 -0800"
      },
      "message": "Allow multiple original-package tags.\n\nAlso fix some issues with moving files from update commands.\n"
    },
    {
      "commit": "8f7f35e0ccd91c964b9d3eeef81ff829622dfa74",
      "tree": "f00fafb472259f5b1cfa416b54cf62a2c3bef735",
      "parents": [
        "59dc9ecec6e4f53a1a2934b08c7f779d2b0a0d9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 25 18:48:12 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 16:34:33 2010 -0800"
      },
      "message": "Add new -W option to Am to wait for the start to complete.\n"
    },
    {
      "commit": "7d411a3b947ba82d1d57f73c0fa698c3b9c95892",
      "tree": "9fae7c4860733aaa126af64ab433c98665ff2819",
      "parents": [
        "4c904a3bf3dbe98607b5e3f706ee8ef8887ee104"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 11:27:08 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 26 12:45:22 2010 -0800"
      },
      "message": "Add single-package restore to Bmgr feature set\n\nAlso sanity-check the package name on the Backup Manager side, failing gracefully\nif the given package is not a backup/restore participant.\n\nBug: 2293977\n\nChange-Id: I3575046ffcaa3cf45c1c602824baeadd64082f70\n"
    },
    {
      "commit": "8fe5c9e39def5a0a2139d902a09ae11414b90c92",
      "tree": "efb2e1d6acbd40dd85401ffc5ab7814047baa290",
      "parents": [
        "9d6e45ad9213b3cf85e3a4ad037b4e9b182a4cc7"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Thu Feb 25 00:06:41 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Thu Feb 25 00:06:41 2010 -0800"
      },
      "message": "Replacing hard-coded mount point for ASEC with a getenv() call.\n"
    },
    {
      "commit": "3963cca7ff69feab11ab57ed378bc40f737d0b61",
      "tree": "15ece74b6838a1f6cecf20e7b8756e7423ab687c",
      "parents": [
        "a141ecff2fa21263404f32114c7cd27f4191af01",
        "6fb35fe1accfbdcbf0252e55cf7ef823c12f4c05"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 24 11:38:08 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 11:38:08 2010 -0800"
      },
      "message": "Merge \"add \"startservice\" option to am command-line utility\""
    },
    {
      "commit": "6fb35fe1accfbdcbf0252e55cf7ef823c12f4c05",
      "tree": "9665f7db74016860efaf894244562c8f39d3f297",
      "parents": [
        "9ff1f96fdf1c88c55c45e0876b10a3a9686dc28a"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 24 11:13:26 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 24 11:37:35 2010 -0800"
      },
      "message": "add \"startservice\" option to am command-line utility\n\nAllows starting Services in addition to Activities.\n\nChange-Id: Ib078115f6200faa8907b35909af2f64b0c563b38\n"
    },
    {
      "commit": "cf6eaeaae9e6745dd6e07540812c79821d7043c2",
      "tree": "fe1224c5b492a8ad09d00e167b66a45413fb3d73",
      "parents": [
        "2a399f066d4f3870385002cdcda8082a0eeeb770"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 23 19:37:45 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Feb 24 11:31:36 2010 -0800"
      },
      "message": "Some framework fixes for apps on sd\nchange hard coded path in installd\nfix tests\nWork around for renaming containers.\nDo forced unmount when destroying containers.\nForce a gc in default container service to release handle to parsed package\nand thus avoid getting killed by vold\nSome cosmetic changes to PackageManager api.\nUnit tests for renaming container for MountService\nRemove internal size limit on app to be installed.\n"
    },
    {
      "commit": "875d259c9572b06faaa6095a996e2a2c27a337af",
      "tree": "8f57e2e30536925c70e6bec2836503a293d40280",
      "parents": [
        "681875642aa6c8af6b6dc0e00d1ce6bdfcab936d",
        "66961105e54e97e5c6e1ea239055b157b74e11bc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 24 09:12:03 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 09:12:03 2010 -0800"
      },
      "message": "Merge \"Tag stagefright development tools as \"debug-only\".\""
    },
    {
      "commit": "66961105e54e97e5c6e1ea239055b157b74e11bc",
      "tree": "22c53956eed26c2a14e05f61ebe345885bf5e358",
      "parents": [
        "2ca759dbf52d07fff880499c4ba13d6cc3961190"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 16:55:02 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 16:55:02 2010 -0800"
      },
      "message": "Tag stagefright development tools as \"debug-only\".\n"
    },
    {
      "commit": "5386b3f91ab15a96d33c5cd1deb74c1493c3b3ac",
      "tree": "53cb62e36b33976c285c5b47f19aa2e9ea033ba1",
      "parents": [
        "5900dc7c33a3ec0d639e5c4828c217827c94ef43",
        "84b72ec3b455a016fcb7a7c8d02959fc6b5b88d2"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Feb 23 15:25:46 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 15:25:46 2010 -0800"
      },
      "message": "Merge \"Add Arp Cache dump\""
    },
    {
      "commit": "84b72ec3b455a016fcb7a7c8d02959fc6b5b88d2",
      "tree": "54ded6c68b269d5afa15e3be07a647af54e306e3",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Feb 23 15:21:11 2010 -0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Tue Feb 23 15:21:11 2010 -0800"
      },
      "message": "Add Arp Cache dump\n\nSigned-off-by: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\n"
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "1f13ceb6d241ca9cebebfa6c6b5853291c2c17d6",
      "tree": "5fba46123d798507522c6c069ccd5918ec3efdd6",
      "parents": [
        "2b95c2413838c2e2b127ebab8fb4fead7d52e460",
        "6c9bf1c1de7360d96c16c7ba27b600348737a08f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 17 15:06:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 15:06:44 2010 -0800"
      },
      "message": "Merge \"Better diagnostics for the stagefright tool and codec performance.\""
    },
    {
      "commit": "6c9bf1c1de7360d96c16c7ba27b600348737a08f",
      "tree": "44b47111521ddecba5f815526659c0847877f6db",
      "parents": [
        "0f5a434c5467ef300b7bb408d40aa763aecdb19f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 17 14:57:28 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 17 14:58:07 2010 -0800"
      },
      "message": "Better diagnostics for the stagefright tool and codec performance.\n\nrelated-to-bug: 2450938\n"
    },
    {
      "commit": "6a70d7d1e28bd0b98d03e7ecab3fd08ea5973e34",
      "tree": "e76ae4ea5cea4d0559b115d51ca10e1fc308255a",
      "parents": [
        "1168baae849f03ad655bff74360b286b2f10b4a8"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Feb 17 14:16:32 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Feb 17 14:25:03 2010 -0800"
      },
      "message": "Don\u0027t overwrite ANR traces.txt if it can\u0027t be renamed (usually\ndue to lack of permissions, usually due to an old adb running\n\"dumpstate\" directly rather than via bugreport).\n"
    },
    {
      "commit": "642b7c0f1964389ed0b049df275c7b4daaf35b7a",
      "tree": "0aedd2679bb469a8d491d7c59931dbbef1e741d9",
      "parents": [
        "241379081e046803b7f4cf4f07091b9de49abf31",
        "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "message": "Merge \"Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests\""
    },
    {
      "commit": "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2",
      "tree": "fc25f9f6adee005c287454a74837f6cbc1a072a0",
      "parents": [
        "70251b1704b9bb81443e7533d365400645dd5eaa"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 09:43:29 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 18:50:47 2010 -0800"
      },
      "message": "Include install location preference when installing packages.\nChanges include\nAdd new remote call in default container service to determine\ninstall location.\nRename INSTALL_ON_SDCARD\nRemove recommentAppInstall method\nAdd some additional flags used in remote stubs.\nMove check for protected apps prior to copy.\nUnit tests\n\nDefaultContainerService first parses the file uri(if content uri is specified\nit returns a default install internal only value) and returns\na recommended location. Based on which the temporary id is determined\neither a file name or a container id and the file is copied there.\nThis is then later renamed during install.\nTodo\u0027s light weight parsing of package when determining location since we\njust need the install location attribute only when finding out\nrecomended location. This will also enable to move the check for\nupdated system apps(cannot be on sdcard) prior to copying.\n"
    },
    {
      "commit": "d705fd2b0aca3f57168934f2ea8c351ef249f829",
      "tree": "1e9c2835b330f7c1a202abdc1a68cc8827424ef7",
      "parents": [
        "f5c6eff63d19a9f7a970a4f90619edac873c006d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 14:58:04 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 16:29:50 2010 -0800"
      },
      "message": "Tweak updatecmds to be able to move entire directories.\n"
    },
    {
      "commit": "6b03844b48c13c52d4c7ec4754d53501814098d8",
      "tree": "ca1551cdb85e05299d822e0d8213f510608d56e8",
      "parents": [
        "2870552b412cd8186c6605d108b736832b9b82da"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 14:41:20 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 14:41:20 2010 -0800"
      },
      "message": "Fix simulator build.\n"
    },
    {
      "commit": "000479f9e325b4e426a67033abd92d47da412725",
      "tree": "16b93ea777744aa24ffe7d3a191bb90529ad4ce5",
      "parents": [
        "28a5dc229ed25c771cde25668928edc788073029"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "0dd50e61267818b4cba0453c2abe18a77d3f6f66",
      "tree": "f7246ab284e9c357889bc84a007390170366f556",
      "parents": [
        "b687581d4cf67fe8f25bac4333b513bcba2f3cb2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Feb 09 19:02:38 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Feb 09 19:02:38 2010 -0800"
      },
      "message": "Fix installd to create /data/data/\u003cpkgname\u003e with appropriate permissions.\n\nThe directory was created with read+exec rights for others.\nThe patch restricts it to only exec rights.\n"
    },
    {
      "commit": "9446c5046872e8ae44120d4057ae724875aba1a4",
      "tree": "58a95fe37adc5051fc967af6f2ca7b82f0319842",
      "parents": [
        "7722abe2591026e7db8910afa0431602723fc1e0",
        "e4cfcb82a86e1546474c3fd25101ab561063a1bd"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 05 12:05:42 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 12:05:42 2010 -0800"
      },
      "message": "Merge \"When the extractor is not able to be created successfully, don\u0027t crash\""
    },
    {
      "commit": "e4cfcb82a86e1546474c3fd25101ab561063a1bd",
      "tree": "66b79cca30bd18ba9e56648567d35b330e364db7",
      "parents": [
        "09922d855bd008f58214e4c1a905263129a924a3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 04 18:08:06 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 04 18:11:32 2010 -0800"
      },
      "message": "When the extractor is not able to be created successfully, don\u0027t crash\n"
    },
    {
      "commit": "5c1779b8acbf570f66ed401e5a0daad56533305d",
      "tree": "be429117b89979822b6ec8c74ad8272cc87eaa40",
      "parents": [
        "64226a49b75b44da56740a21b38ce6cc710796d8",
        "8472581aa32eee1368de379c2c079ea0a66baa3c"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Thu Feb 04 16:27:42 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 04 16:27:42 2010 -0800"
      },
      "message": "Merge \"Add single-package restore from an app\u0027s most-recent data\""
    },
    {
      "commit": "8472581aa32eee1368de379c2c079ea0a66baa3c",
      "tree": "c7e71e08b7e465fa710c7e0903b8a2a74cce6fc4",
      "parents": [
        "348f7b904851e3edcf09b8362406ff2f4ae57db2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 04 15:52:40 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 04 16:01:09 2010 -0800"
      },
      "message": "Add single-package restore from an app\u0027s most-recent data\n\nRenamed the RestoreSession performRestore() method to restoreAll(), and\nadded a new restorePackage() method that only restores the single\nspecified app.  In order to restore an app other than itself, the\ncaller must hold the android.permission.BACKUP permission.\n\nThis change also introduces dataset tracking:  the Backup Manager\npersistently remembers both the current backup dataset\u0027s identity\nand that of the \"ancestral\" dataset, i.e. the one most recently used\nfor a whole-device restore such as performed by SetupWizard.  When a\nsingle package is restored via restorePackage(), the selection of\nmost-recent dataset to use is this:\n\n1. The data from the currently-active backup dataset, if such exists.\n   An app that has ever backed up data will therefore get its last-\n   known-good data.\n\n2. The app\u0027s data from the ancestral dataset, if such exists.  This\n   covers the case of a factory reset followed by reinstallation of\n   an app at a later time.  The app had not yet backed anything up\n   post-wipe, but the old data is in the ancestral dataset and should\n   be brought forward when the app reappears.\n\n3. If neither 1. nor 2. exist, there is no data to restore, so just\n   skip it and return failure.\n\nNote that the infrastructure to automatically attempt a restore after\nan application has been installed does not yet exist; that\u0027s coming.\n\nChange-Id: I0ba170df9885128000c46ed28d3dddda3a63a143\n"
    },
    {
      "commit": "b858dfda5012a1040927ed62c3bb856c3294d882",
      "tree": "d865e8580e15ecda54e4fd4e891c489eb222a8b1",
      "parents": [
        "70d10c0156f5d2d1c639d0ebe62de8ec950d4306"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 02 10:49:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 03 15:42:02 2010 -0800"
      },
      "message": "Implement system data migration support.\n\nThis adds three new features:\n\n- \u003coriginal-package android:name\u003d\"com.foo\" /\u003e manifest tag.\n  This allows an .apk to specify another package it originally came from,\n  propagating all state and data from the old to new package.\n\n- \u003cadopt-permissions android:name\u003d\"com.foo\" /\u003e manifest tag.\n  In some more complicated cases, a new .apk may be a combination\n  of multiple older .apks that each declared their own permissions.\n  This allows you to propagate the permissions from these other\n  .apks into the new one.\n\n- A new system/etc/updatecmds directory.\n  You can place files here which describe data files to move from\n  one package to another.  (See below for details.)\n\nAlso in this change: we now clean up the data directories of\n.apks that disappear from the system image, and some improvements\nto logging and reporting error messages.\n\nA typical file in the updatecmds directory looks like this:\n\n-------\ncom.google.android.gsf:com.google.android.providers.talk\n    databases/talk.db\ncom.google.android.gsf:com.google.android.googleapps\n    databases/gls.db\n-------\n\nThis says that for com.google.android.sfs, there are two packages to\nmove files from:\n\nFrom com.google.android.providers.talk, the file databases/talk.db.\nFrom com.google.android.googleapps, the file databases/gls.db\n\nAs part of moving the file, its owner will be changed from the old\npackage to whoever is the owner of the new package\u0027s data directory.\n\nIf those two files had existed, after booting you would now have the\nfiles:\n\n/data/data/com.google.android.gsf/databases/talk.db\n/data/data/com.google.android.gsf/databases/gls.db\n\nNote that all three of these facilities assume that the older .apk\nis completely removed from the newer system.  The WILL NOT work\ncorrectly if the older .apk still remains.\n"
    },
    {
      "commit": "c028be4f3b8c7476b46859f66c3f33d528adf181",
      "tree": "8a740e6207e958572706a636fcb92425dbf13a6e",
      "parents": [
        "aeb4126736c1b93abe5252e1723c568a13da7c81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jan 25 12:19:12 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 10:26:43 2010 -0800"
      },
      "message": "AppsOnSd feature - Add default container\n\nAdd new remote interface to do temporary copies. The new\nremote stub handling is done on mHandler thread and doesn\u0027t need locking\nfor now.\nAdd new InstallArgs class and subclasses to isolate cases for installation.\nMove resource deletion for failed installs/upgrades to later on in installation\ncycle.\nFix code path for forward locked apps when using scanPackageLI\n\nTODO\u0027s\nFix installation paths to completely use InstallArgs based design later on.\nGet rid of using flags in various install/uninstall code paths.\nIdeally InstallArgs should be created using these flags and used in the\nrest of the code.\nFunction renames.\nRevisit mount api\u0027s.\n"
    },
    {
      "commit": "ea11654e684cb91252487f697c72e76da507f7be",
      "tree": "30c53b6a29da941eee85b6fa1b99538216da66f4",
      "parents": [
        "2242da5a4fadbef936153b4e43218d73033a11cd"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 17:04:26 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Jan 26 17:04:26 2010 -0800"
      },
      "message": "Use six dashes instead of five.\n"
    },
    {
      "commit": "07bf09da4a365282fc35f800b62a83e0fa5533e2",
      "tree": "378e1ba0004146ae514c29c2e0ed60ac1cef6af0",
      "parents": [
        "f1c934f2726a09f11a7126e2a889c97162a2a1e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 14:27:12 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 16:17:40 2010 -0800"
      },
      "message": "Initial checkin of AudioSource and AMRWriter, a pair of classes supporting pure-audio recording in stagefright.\n\nrelated-to-bug: 2295449\n"
    },
    {
      "commit": "b49d9af7e1205312cc25e23636ef3980bee4c1b0",
      "tree": "d99571e6880423eb6f5a1c43e59f1fc5629e82a4",
      "parents": [
        "56d42582f20efce1ff46ea2b5fff60b26cf2c1f0",
        "fd3530f90562bb7e66edfee39d90fc8beda82f1d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Jan 19 14:11:43 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 14:11:43 2010 -0800"
      },
      "message": "Merge \"Mount/Unmount secure containers Persist flags in PackageSetting. Flags are relevant to ApplicationInfo.FLAG_SYSTEM, Application.FLAG_ON_SDCARD, ApplicationInfo.FLAG_FORWARD_LOCK. New pm command to simulate mount/unmount in Pm. This will be removed when MountService/vold event generation gets fixed. Calls from MountService into PackageManager when media gets mounted/unmounted. Scan the packages and grant permissions when the sdcard gets mounted. This api might change again.\""
    },
    {
      "commit": "fd3530f90562bb7e66edfee39d90fc8beda82f1d",
      "tree": "3829a74034270ac5434a0863e5dd115172443dfc",
      "parents": [
        "97d1195832829905b07b7680b73bed8af959f430"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jan 18 00:15:59 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Jan 19 14:04:54 2010 -0800"
      },
      "message": "Mount/Unmount secure containers\nPersist flags in PackageSetting. Flags are relevant to ApplicationInfo.FLAG_SYSTEM, Application.FLAG_ON_SDCARD, ApplicationInfo.FLAG_FORWARD_LOCK.\nNew pm command to simulate mount/unmount in Pm. This will be removed\nwhen MountService/vold event generation gets fixed.\nCalls from MountService into PackageManager when media gets mounted/unmounted.\nScan the packages and grant permissions when the sdcard gets mounted.\nThis api might change again.\n"
    },
    {
      "commit": "3c79a4abf816f58956831d551b858642139a082b",
      "tree": "27e21d426e6036e2c720c0e409f4fa8167068627",
      "parents": [
        "5a12413331c8bf9ebb62f84771aaac36baa5fa95",
        "e42fdb5442d09ff6b8c82520b497f56cf14673ef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 19 10:25:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 10:25:13 2010 -0800"
      },
      "message": "Merge \"Upgrade for the stagefright commandline tool to support extracting thumbnails and to optionally prefer software codecs.\""
    }
  ],
  "next": "e42fdb5442d09ff6b8c82520b497f56cf14673ef"
}
