)]}'
{
  "log": [
    {
      "commit": "5965ba30d3ac8f9504681ac2e7ea8ac84aa0c5a7",
      "tree": "93d87bfc7512879b4187ebdc854938b208ca00bb",
      "parents": [
        "01ad2a3fa75902638f49b5bd3258c354f780892e"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 20 15:49:14 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Sep 20 15:51:15 2011 -0700"
      },
      "message": "dumpstate: add uptime to top of bugreports\n\nuptime is a good indicator to determine whether a restart was a\nkernel reboot or a runtime restart, put it at the top of bugreports.\n\nChange-Id: Ie4f4ef2f319a7216495ead3891bbfdc474146916\n"
    },
    {
      "commit": "20e93c0507b66e697d23c58c138484d652a1b810",
      "tree": "542febb60578c69afe91c9a77e18885e7a87b9fa",
      "parents": [
        "88b18eb8c2034e9de35482cc737ef8d608d55867"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Mon Sep 19 22:29:18 2011 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Mon Sep 19 22:29:26 2011 -0700"
      },
      "message": "dumpstate: collect /proc/net/dev and /proc/net/xt_qtaguid/iface_stat_all\n\nAdd extra network interface statistics.\n\nBug:5322407\nChange-Id: I9441b2ca2517d8380b2c9f5bb5bd077a48438d04\nSigned-off-by: JP Abgrall \u003cjpa@google.com\u003e\n"
    },
    {
      "commit": "fc301b0bb5c635c6bb51b48c504a8db5f9010e5c",
      "tree": "463dec648e238d2e6821a86d121f2a3f8048b3ff",
      "parents": [
        "117999d1f44ec3423369385495ae207898b7b73e"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Aug 30 14:39:17 2011 +0100"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Fri Sep 02 11:26:59 2011 +0100"
      },
      "message": "Require INTERNET permission for network-based content.\nBug #1870981\n\nChange-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f\n"
    },
    {
      "commit": "ced159b1d839b24775525ccb736876e7cb7e649d",
      "tree": "358ee2a7721a732d4bbefed6cc587288f2fb43ff",
      "parents": [
        "12bde60b39affbfdcb7ef6317e0a5f99c3f41b10"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 12:21:26 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 13:37:34 2011 -0700"
      },
      "message": "When encountering a discontinuity, flush(clear) all content enqueued up to that\n\npoint except previously enqueued discontinuities.\n\nChange-Id: Id04a559dc062fa4a5c80c599ad74bf81a543de01\nrelated-to-bug: 5201378\n"
    },
    {
      "commit": "2eb8e3619ee6c5cada7f89f23b06a5de76c3410a",
      "tree": "0e744a7085619bd708c2ebdba644d9b2614808f4",
      "parents": [
        "c31c7bcaecfa520bbca1bc364f8d531af76275ea"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed Aug 24 11:24:33 2011 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed Aug 24 11:28:37 2011 -0700"
      },
      "message": "dumpstate: dump qtaguid info, ip6tables info, buddyinfo\n\nThis will add around 50-120 lines for qtaguid info and 50-100 for ip6tables.\nThe /proc/buddyinfo is for kernels where /proc/pagetypeinfo is\nnot accurate (ones with more than one memory node, 2.6.35).\n\n\nChange-Id: I7fad53209c706d88e33e5ae824486b84941c02b6\n"
    },
    {
      "commit": "c25a4c44f82c100828b567e82a70c79d6a7bef3d",
      "tree": "7d5ca03104e2b1af939383d730f2601e083a759e",
      "parents": [
        "28a5cc2b1d1db519e7799a867094cda096aa74cc",
        "351e74de19cba8e1f9d451ebf4efbe3a64360998"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Aug 18 20:11:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 20:11:47 2011 -0700"
      },
      "message": "Merge \"Add /proc/pagetypeinfo to dumpstate\""
    },
    {
      "commit": "47a105a720a83a6d0c58962f8024e28a4baa5b06",
      "tree": "8e09bbe558029b9472dc1af66116eacfe0f403f7",
      "parents": [
        "4cee03a85f5756227e3c74965a5d3fb52bbf57a9",
        "0bb1e9139e30aa954f46b0b6fdec2595fac33b80"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 16 13:26:12 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 13:26:12 2011 -0700"
      },
      "message": "Merge \"Small improvements to am command.\""
    },
    {
      "commit": "0bb1e9139e30aa954f46b0b6fdec2595fac33b80",
      "tree": "c403956eee09fa684d2e92d893ed576fddfdcbee",
      "parents": [
        "0a2f9664737f112e7a15d8b28e053469845a5a80"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 16 12:54:24 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 16 13:24:53 2011 -0700"
      },
      "message": "Small improvements to am command.\n\nThe start command can now take a package name or component name\nfor easier starting.  New -S option allows you to force stop an\napp before starting it.\n\nChange-Id: I5c55b34dd794783f0f5f51851dc811b8c1b39b76\n"
    },
    {
      "commit": "46d2545db48e6b8565ef7beedf6486ef5d7f4507",
      "tree": "efae1b841c9c13637cc740a64eae5ae01e2edec1",
      "parents": [
        "bcc2d40a11432736e94c1dd3c64abd1aac476c20",
        "5ab2157bf1f105b02d3e2913cd3a33f9765b74ca"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 16 08:35:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 16 08:35:53 2011 -0700"
      },
      "message": "Merge \"Infrastructure to support package verifier\""
    },
    {
      "commit": "351e74de19cba8e1f9d451ebf4efbe3a64360998",
      "tree": "98b8b73f628f57947a16565d6a48fc8cea5ecf9c",
      "parents": [
        "0a2f9664737f112e7a15d8b28e053469845a5a80"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Mon Aug 15 19:43:35 2011 -0700"
      },
      "committer": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Mon Aug 15 19:49:19 2011 -0700"
      },
      "message": "Add /proc/pagetypeinfo to dumpstate\n\nThis shows memory fragmentation\n\nChange-Id: I1ba2a764c1f61ce4b29ea14b4b951994488f4c48\n"
    },
    {
      "commit": "62f20ecf492d2b29881bba307c79ff55e68760e6",
      "tree": "58ea602138a28fb3555368900acbad6219ae2de2",
      "parents": [
        "0f2da17a9523fc40bceb5209cabd044df648e98e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 15 17:40:28 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 15 17:55:57 2011 -0700"
      },
      "message": "Add new am option to profile the launching of an activity.\n\nChange-Id: Ie71a8043eafe41f53a0b3dbb5170276d87acbc9b\n"
    },
    {
      "commit": "5ab2157bf1f105b02d3e2913cd3a33f9765b74ca",
      "tree": "5c2241ddca3526545b73472ed0006eaba0439da1",
      "parents": [
        "dd7bc9f457204e60feeea53b0b12ba706d6964df"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 27 11:11:19 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 15 17:26:31 2011 -0700"
      },
      "message": "Infrastructure to support package verifier\n\nAllow a package verifier to approve or disapprove of a package being\ninstalled.\n\nChange-Id: Ibfea0f2b1aaa4ab1589a4e59f96144702b9bf94b\n"
    },
    {
      "commit": "1b253b702a356619ae3c5e68ee92062b5305c5d7",
      "tree": "26233084bf99a5aad2131ede958741fc7147547a",
      "parents": [
        "7d8fc3c911ea8e4cd1e6531118da4f72e521a944"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 15 15:20:22 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 15 15:25:39 2011 -0700"
      },
      "message": "boot animation doesn\u0027t use EGLUtils anymore\n\nChange-Id: I0767ac2a5ab814382b41c85bd5b0786c7a025255\n"
    },
    {
      "commit": "c74a02873a0981e3db2417af70ee7be3168ed1ba",
      "tree": "37f3f720571beb51202fec21939c2c4aebc0a3ee",
      "parents": [
        "063097545e6a273952463803d1a2fab2cb590d4e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 11 20:07:39 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Aug 11 20:07:39 2011 -0700"
      },
      "message": "Add lsof to bugreport.\n\nChange-Id: I439795ad46a4e100019b3819855c76ba695f279f\n"
    },
    {
      "commit": "22d93a0d71d965970f581cd9aa1cbf2efbb5998f",
      "tree": "f5b0d0a82c59d398fe2185ac047f532fba71724d",
      "parents": [
        "bce8effe75c5477eb42d4e1c4df609da962285a2",
        "41394a361020e9f58524f23d6831bb8e63063856"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 26 15:26:02 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Tue Jul 26 15:26:02 2011 -0700"
      },
      "message": "resolved conflicts for merge of 41394a36 to honeycomb-plus-aosp\n\nChange-Id: If4dc99c558dc45c9a7ff8d3ea5be69578b4ee793\n"
    },
    {
      "commit": "ac74551bb42eb2d6775d994357481113375574e7",
      "tree": "2a15aa107873b1a901978ed2db8f1285fa7c6000",
      "parents": [
        "32d106e154d0388ac13774fad3c58ff60ba9ae8f"
      ],
      "author": {
        "name": "John Michelau",
        "email": "john.michelau@motorola.com",
        "time": "Mon Jul 25 20:42:50 2011 -0500"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jul 25 21:53:15 2011 -0700"
      },
      "message": "Disable name lookups for dumpstate calls to \"iptables -L\"\n\nThe name lookups are not helpful enough to warrant the large delays\nthey can cause.\n\nChange-Id: I8710e76b15b7cf060b7f4f89128ea3249fcdbd0d\n"
    },
    {
      "commit": "d40e2c67ed6423355aeb1292b33c2f8a20b3c84d",
      "tree": "673b5cb61a68f3a85bccdee1e6aa0f79b180c100",
      "parents": [
        "da6e4a7d9dd8100f62de018159c4b05c17f665e3",
        "a05f099301ca9d5efd4db549295401ee00b439a0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 24 12:59:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 24 12:59:35 2011 -0700"
      },
      "message": "Merge \"QueryCodecs() signature change\""
    },
    {
      "commit": "a05f099301ca9d5efd4db549295401ee00b439a0",
      "tree": "3e9b1bf6ce6b55d72b88662b7363826258ea13dc",
      "parents": [
        "47d4caf41b052ab88f747ccc789754be5f44f8af"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jul 22 09:52:39 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jul 22 14:51:51 2011 -0700"
      },
      "message": "QueryCodecs() signature change\n\nRestore QueryCodecs() signature exactly as used by third-party libs.\nAdd an alternative function to select HW only codecs.\n\nChange-Id: Ibb2cb4dd36fc0c6599eb93aa5751c216397e3b6f\n"
    },
    {
      "commit": "7eabe55db6b113f83c2cefcd06812648927de877",
      "tree": "a105d90d8addbce9bb457b4bef974ce2f699fc81",
      "parents": [
        "ac4159549c10dbe428d42980278c0e43ecc8d93f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 21 14:56:34 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jul 21 14:56:34 2011 -0700"
      },
      "message": "Add looper profiling to adb shell am\n\nTo profile the looper, run the following command:\n\nadb shell am profile looper start \u003cprocess\u003e \u003cfile\u003e\nadb shell am profile looper stop \u003cprocess\u003e\n\nChange-Id: I781f156e473d7bdbb6d13aaffeeaae88bc01a69f\n"
    },
    {
      "commit": "1e9f56cf9e3921c3cb74787a700cb165f2f2e26a",
      "tree": "7ecef5e26806203493d8e35b0d4aa5ccd9fec106",
      "parents": [
        "3ad4d3ce01f173e80e0ebb751c4a8913aef5648a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 18 16:56:35 2011 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jul 18 17:30:13 2011 -0700"
      },
      "message": "Allow BoardConfig.mk to define an extension to dumpstate\n\nIf BoardConfig.mk defines BOARD_LIB_DUMPSTATE, link to that library\nand call dumpstate_board(), which can dump debugging information that\nonly make senses on one device.\n\nChange-Id: I2c5006a1a04b02cf26fd73575047ac176f222616\n"
    },
    {
      "commit": "211f5af3bb47ba44c9714abbef0dec1b1a0ada51",
      "tree": "6ff69c8a47bf934c5df3b7aca109281167020fcf",
      "parents": [
        "55421aa80edbc5fdd9ce43029845ca0bd6ecc4c6",
        "56a37b052912d09c310f43ab1215ccc93f2dbda5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 18 11:07:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 18 11:07:47 2011 -0700"
      },
      "message": "Merge \"Add option to query hardware decoders only\""
    },
    {
      "commit": "56a37b052912d09c310f43ab1215ccc93f2dbda5",
      "tree": "ce525d6fa573cdda87019003e72d8326d05ef464",
      "parents": [
        "a6c53c79390e719ae425d38d6d80587e0d017ef3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 17 16:35:11 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 18 10:57:50 2011 -0700"
      },
      "message": "Add option to query hardware decoders only\n\nAdd an option to OMXCodec::QueryCodecs() to filter out\n software codecs.\n\nUpdate stagefright command line tool to list the roles of codecs.\n\nChange-Id: Icddb79118c30fe13cc3aea20f340174cc082c4e0\n"
    },
    {
      "commit": "f483009573dc8a4d9491ca7714d217d622585158",
      "tree": "9764e6eb696e84b5ddf2d9e8a4df5bb5d0c1d53d",
      "parents": [
        "5f81f1bcd9cdb15411bd4bb036b75ee6e822b8bf",
        "1591aa004557859742fb89190ce76cbbf3a1ef12"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Jul 14 14:53:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 14 14:53:58 2011 -0700"
      },
      "message": "Merge \"ip-up-vpn: Create proper states for pppd and racoon.\""
    },
    {
      "commit": "1591aa004557859742fb89190ce76cbbf3a1ef12",
      "tree": "d4c0c5668b15b10cb81c3c8d37da795dd555c67d",
      "parents": [
        "f7537bccb2b2ca2fa6c0205c4b24acd0836c0006"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Jul 14 14:47:48 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Jul 14 14:47:48 2011 -0700"
      },
      "message": "ip-up-vpn: Create proper states for pppd and racoon.\n\nVPN no longer uses system properties to pass parameters.\n\nChange-Id: I13e4339ababb08552c4276c675c21176774da66c\n"
    },
    {
      "commit": "b39c07b14404eb8ab91fdbfa4560e503ab6cbe8d",
      "tree": "b76a1eb8851984ad5e61c2de99bf7ddd861b67ae",
      "parents": [
        "1a541075622c5eacbef43c1134f7f9a2598b29b7",
        "8d3073c5c4bfd8b2976d7793e127e686dd306200"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 14 09:09:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 14 09:09:14 2011 -0700"
      },
      "message": "Merge \"Include all supported mime types when querying decoder profile/level support.\""
    },
    {
      "commit": "c1b9bbb21c8ad5109978a4e9e770cd18b0257434",
      "tree": "bfb7dd2272e5fe29d3c0fc4f22ca708e00bc10be",
      "parents": [
        "b6e5e7a740bf595a1a5d32b28549e5d579a04ee3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 13 11:06:57 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 13 19:45:44 2011 -0400"
      },
      "message": "Remove some #ifdef HAVE_ANDROID_OS that were needed for the simulator build\n\nChange-Id: I13d9f251f86c05ae5405f37adbf6b8e9660935ba\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8d3073c5c4bfd8b2976d7793e127e686dd306200",
      "tree": "ce596fd64ec71c2c38aaec727a5848473e28b991",
      "parents": [
        "67d464f47e842d5069e993408fd51ec122ad8019"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 15:27:04 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 15:27:51 2011 -0700"
      },
      "message": "Include all supported mime types when querying decoder profile/level support.\n\nChange-Id: Ia1c930eee489bfebb482ac5079bd6ac9354532f2\n"
    },
    {
      "commit": "8c55a9a57e4f13ec420c3de7b3abfdcf454f6633",
      "tree": "f72fd5b0d50af585d7d4c644f84a288dffbc2946",
      "parents": [
        "067b873f7cc3d1b3e83604b78f8c0dc769f870b1",
        "bd882b1c8708686d373c56e07e6bb8b1cb6ffd9e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jul 12 12:15:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 12 12:15:07 2011 -0700"
      },
      "message": "Merge \"Remove the simulator target from all makefiles. Bug: 5010576\""
    },
    {
      "commit": "bd882b1c8708686d373c56e07e6bb8b1cb6ffd9e",
      "tree": "b17fbae7a6ff475ab37be48046d0540d594f84fb",
      "parents": [
        "3f9dd287b99340efaaa257759e71a8f81b2ed113"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8\n"
    },
    {
      "commit": "5a8eccbfb922701023d1dc1a28a70be4421ec67e",
      "tree": "114f182e92b088fe3c70b650c5b19fa7f4bf49a9",
      "parents": [
        "9f845cff9b72b27eadb55298bdcf0104599f9385",
        "8ffb0c0210857210a51d7a9a0f1afb73afbf8677"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Mon Jul 11 16:45:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 11 16:45:35 2011 -0700"
      },
      "message": "Merge \"allow Uri as intent extra in am command\""
    },
    {
      "commit": "5d6d90fac8fa646521081c7b67aabaadb5db946b",
      "tree": "289c88bab5ba9d94f7db328dc95db845493a140b",
      "parents": [
        "10e89712863f5b91a2982dc1783fbdfe39c1485d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 13:04:53 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 13:33:22 2011 -0700"
      },
      "message": "Remove more simulator support code.\nBug: 5010576\n\nChange-Id: Ie6c8665306bf4e822693b76f25c3a0f05c12d42d\n"
    },
    {
      "commit": "10e89712863f5b91a2982dc1783fbdfe39c1485d",
      "tree": "7a268e40e03cfb2b65d3764b73d0ea42172965fa",
      "parents": [
        "b7440a140b650932bf31cf51d3b87c3249e3b682"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 18:52:57 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 19:54:07 2011 -0700"
      },
      "message": "Eliminate single-process mode.\nBug: 5010576\n\nChange-Id: Id450dc83efed4897d1e4ff451530fed14457aace\n"
    },
    {
      "commit": "284f1bb4daf77f7e6b688c0936dd4a31ec2e7c74",
      "tree": "d651aa41ee14b9137285163166b391badfe4cbe2",
      "parents": [
        "1d19c18f9bd66b2b4883f8ce33c04ff5c87dd881"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jul 07 14:31:18 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jul 08 12:28:48 2011 -0700"
      },
      "message": "Can now restore a subset of apps from historical dataset\n\nAdds the ability to filter a restore of an historical dataset so that it\nonly restores certain apps\u0027 data regardless of what is actually present\nin the dataset.  This is currently only used by the bmgr command-line tool,\nfor debugging / developer support.\n\nBug 2021590\n\nChange-Id: I7685e5d609b0f5506f71d70c26410602bb387659\n"
    },
    {
      "commit": "8ffb0c0210857210a51d7a9a0f1afb73afbf8677",
      "tree": "3ce281a62dcb94c3932b6830c7b3e42091c4d532",
      "parents": [
        "4a6d113ba0f33ce5dc14e59463e928ba309e1c2e"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Jul 07 22:45:11 2011 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Thu Jul 07 22:50:54 2011 -0700"
      },
      "message": "allow Uri as intent extra in am command\n\nWhen composing an intent using am command line, certain extra fields\nneed to be added as a Uri (a Parceable in fact).\n\nThis patch adds a \"--eu\" parameter so that the provided value is\nparsed as a Uri then added into intent\u0027s extra bundle.\n\nChange-Id: I7110829554962d314aa58fd25083dd5041680a73\n"
    },
    {
      "commit": "484738f31c2f50976df3be2c863325da7b0d7a5b",
      "tree": "2393d98863a6cb6241b38eb7fe062b21bd3e1872",
      "parents": [
        "a0c680393f2dd03a937c598b2cb9abf98a58152c",
        "43e8a83521886e4a6989712a75c309a05ba6edbf"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 07 13:34:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 07 13:34:58 2011 -0700"
      },
      "message": "Merge \"Add support for some custom YUV420 color formats to recordvideo utility\""
    },
    {
      "commit": "8bddafa3572f0d0cbc4b85b125d6473682fd38e9",
      "tree": "9de76a41d26afbe2be9e1de02a4bae7b3e7f6725",
      "parents": [
        "b083fa61d9411e9c1f3933fd8657d86e99e7eccd",
        "5eeeea29ecd731897211d31bde7ee87af182420c"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Jul 07 11:05:51 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 07 11:05:51 2011 -0700"
      },
      "message": "am 5eeeea29: am 97667d0c: Merge \"Allow vril-dump to work on user builds\" into honeycomb-LTE\n\n* commit \u00275eeeea29ecd731897211d31bde7ee87af182420c\u0027:\n  Allow vril-dump to work on user builds\n"
    },
    {
      "commit": "43e8a83521886e4a6989712a75c309a05ba6edbf",
      "tree": "25b10c3fc7c6ca731d11a493a2c5822d179ee95b",
      "parents": [
        "2da9eb7175e59a4ad8b9cec185f9cfdf8e075859"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 07 08:30:10 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 07 10:30:31 2011 -0700"
      },
      "message": "Add support for some custom YUV420 color formats to recordvideo utility\n\nChange-Id: I2f0dfba466efb94b704dca761162d7c7457a43cf\n"
    },
    {
      "commit": "790d2e4d69fd6794cdeec4dccd841149b7c38db3",
      "tree": "4e19db9855cf0020b3ba0103db43c998a6abf9b3",
      "parents": [
        "012b86d4294182497c4c72a318e0f4cbe5075a44"
      ],
      "author": {
        "name": "John Michelau",
        "email": "john.michelau@motorola.com",
        "time": "Tue Jul 05 15:20:03 2011 -0500"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Wed Jul 06 09:30:28 2011 -0700"
      },
      "message": "Allow vril-dump to work on user builds\n\nRun vril-dump without \"su root\" when ro.build.type\u003duser.  Also add inet\nperms for dumpstate, so that it can communicate with basebands that\nhave IP-based interfaces.\n\nBug: 4993955\nChange-Id: Icc65ba0f80756db1f63f12f89f9973a55bf405f2\n"
    },
    {
      "commit": "6278d5ef052cec6afecae69328e084566bb157c6",
      "tree": "2f16590f5e1993cb287afd295c45417ce5caa092",
      "parents": [
        "d6315c0ebb6ebbc67f0c669e92f92be70b49ba2c"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sat Jul 02 16:41:59 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sat Jul 02 16:41:59 2011 -0700"
      },
      "message": "Promote ip-up-vpn into the framework.\n\npppd needs it, and racoon will also use it soon.\n\nChange-Id: I7fc40a709f7d44f75cd3683ab77d90cbc29cd765\n"
    },
    {
      "commit": "f4b92ec567477fcdea24fdd18116b045dfcf9852",
      "tree": "196f3192cd08f076c1636ec2f91b3eb5e2dc4683",
      "parents": [
        "ce43bc48588408e72aaa47ac1483837d5bfd1f59"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 30 22:58:29 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 30 22:59:13 2011 -0700"
      },
      "message": "Revert \"Add keychain user with special keystore access permissions\"\n\nThis reverts commit 8c2a1a90a81f04573bfa578eab32f5fd4a30eafb.\n\nConflicts:\n\n\tcmds/keystore/keystore.c\n\nBug:4970237\nChange-Id: I626023d695becfada47e5f319b18e0889b766563\n"
    },
    {
      "commit": "272aaa382f95c38221739f2287c29e414523a5cc",
      "tree": "53b22ed4bd672af3edc9fc9d3e1c5d63661a37b1",
      "parents": [
        "5231b0af515db51c722d4764ecf9412c145c93b6",
        "439863f3b3e725b5de1cba4940a21900369961c0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 29 16:15:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 29 16:15:56 2011 -0700"
      },
      "message": "Merge \"SF transactions are now O(1) wrt IPC instead of O(N).\""
    },
    {
      "commit": "439863f3b3e725b5de1cba4940a21900369961c0",
      "tree": "90ab56432c2436c3392b02ba08876c86796a36ef",
      "parents": [
        "f1bfa84ccf61cad2b6ea9f2e6a612a54a38b79bc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 28 19:09:31 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 29 15:05:41 2011 -0700"
      },
      "message": "SF transactions are now O(1) wrt IPC instead of O(N).\n\nChange-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43\n"
    },
    {
      "commit": "2c22882181e867c9ba4e74ee973b87a71db3389f",
      "tree": "6593873639d24d7fba98e9b7d9cad8f709bf8de9",
      "parents": [
        "9e1fb41b4fbfbd190560cf48f24939703a13eca5",
        "292f8bc9d1b790ab975a87a842c7fabc908b97e0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 29 14:05:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 29 14:05:01 2011 -0700"
      },
      "message": "Merge \"Plumb information from the framework about asec container size.\""
    },
    {
      "commit": "eb9163071573e9c6133b6c23351c1274e7fc3cd8",
      "tree": "cab6c5059e91826ae99ed9c187a863605553bbed",
      "parents": [
        "cde732451070479dd999583f602693c36cdc65c7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 27 15:48:18 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 16:08:24 2011 -0700"
      },
      "message": "Support for \"streaming\" non-transport streams by first converting them to ts packets.\n\nChange-Id: Ia753a1ab99039f54ce3678a38e997902372b5fa5\n"
    },
    {
      "commit": "292f8bc9d1b790ab975a87a842c7fabc908b97e0",
      "tree": "93095c3db441b7d6cf06cce31ca40d39a87da237",
      "parents": [
        "cde732451070479dd999583f602693c36cdc65c7"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 27 16:27:41 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 28 15:02:44 2011 -0700"
      },
      "message": "Plumb information from the framework about asec container size.\n\nChange-Id: Ie0ec3cb6d463aefa341a8cbea80be790451ba5e3\n"
    },
    {
      "commit": "d11eccf3a861fdaa754907a28cc0da554b9aa7b7",
      "tree": "0dd3beebe6413af2b3b8e2c624a49eeff2a6390b",
      "parents": [
        "a1d9ae69fff95e0b74061cc41f808b7f5c25bbf2",
        "e366f52b1520f13306d5fef1c3c8a2b2c653d935"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 12:48:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 28 12:48:01 2011 -0700"
      },
      "message": "Merge \"Multiple changes to ACodec/codec tools:\""
    },
    {
      "commit": "e366f52b1520f13306d5fef1c3c8a2b2c653d935",
      "tree": "3b4fc6abef0e786bddbdd316b5cb19385e3ba321",
      "parents": [
        "84e297238f53f83c9e7de499e711b997d09514e0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 10:51:41 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 10:51:41 2011 -0700"
      },
      "message": "Multiple changes to ACodec/codec tools:\n\nMake sure sf2 does not coalesce input buffers, generalize ACodec\u0027s codec\ninstantiation based on OMXCodec\u0027s list of eligible component names.\n\nSome changes/additions to the \"sf2\" commandline tool\n\nMake surface options consistent with stagefright tool, i.e. use \u0027-S\u0027 instead of \u0027-s\u0027\nNew option \u0027-R\u0027 renders surface-allocated buffers.\n\nAlso fixes a longstanding bug introduced when generalizing from surfaces to native windows that never used surface-allocated buffers in sf2 even when the option was specified.\n\nChange-Id: I59fd533f0f6ef0337ebe2806ddc81a46878eb3ae\n"
    },
    {
      "commit": "8413251083b3d50509011121ed67aa8006c99526",
      "tree": "d221fcdeda4ba47721259b7fdef9c5dfe391e405",
      "parents": [
        "84e297238f53f83c9e7de499e711b997d09514e0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 10:11:09 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 10:11:09 2011 -0700"
      },
      "message": "New option in the stagefright commandline tool.\n\nUse \u0027-S\u0027 to allocate decoder buffers from a surface\nUse \u0027-T\u0027 to allocate decoder buffers from a surface texture\n\nChange-Id: Ib71ea53d0fd1b2def08bfeac2fd8bcbdc1938161\n"
    },
    {
      "commit": "b2b201395ae56fa0cd1021b8ede27987430989e2",
      "tree": "a9a00171a857f829b867a2a6f9654c3972c5dade",
      "parents": [
        "14f14863c508ff38fb2fe925c89e2bb2228fcffe"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Jun 26 21:39:25 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Jun 27 10:38:10 2011 -0700"
      },
      "message": "KeyStore: fix test-keystore\n\nChange-Id: I1dcbd5c3cc7569c397d2480cda76288a9e28cd5c\n"
    },
    {
      "commit": "14f14863c508ff38fb2fe925c89e2bb2228fcffe",
      "tree": "c1d7e0d8439c9531b559ca848ecbe3ef44578b8c",
      "parents": [
        "c18e7e73158f794064fed5017c6c1c9a288673bd"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Jun 26 18:24:19 2011 -0700"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sun Jun 26 18:24:19 2011 -0700"
      },
      "message": "KeyStore: allow system user to get secrets from keystore.\n\nChange-Id: I9cb41344c17fb33e6614a45d46368a9c43e3dce7\n"
    },
    {
      "commit": "46d110329e659cc9cb9514e220ce273701eb151d",
      "tree": "17e69181373b20f3ca37857e63a3bbd378e87e7f",
      "parents": [
        "58b868417755805ebdfe4feb65664ad98c00bf35"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 24 13:22:45 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 24 13:22:45 2011 -0700"
      },
      "message": "Small cleanup of am/pm commands.\n\nChange-Id: I5af730bc177635821a82d4dd3ec9130a5dcd525a\n"
    },
    {
      "commit": "0ff6d7ee17de33d314ef726e7506b39c64a3ed35",
      "tree": "2cd045b94d4fe7bf8e707457cc63523ea8d80ab6",
      "parents": [
        "5ecc4601ea2672e1e52bcd0860908d1cae7db4c2",
        "ac8a1b21986f06d0e54ddebb1e4962de23eb77ea"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 23 10:26:38 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 23 10:26:38 2011 -0700"
      },
      "message": "Merge \"Reinitialize KeyStore::mMasterKey after unlock (and add test-keystore)\""
    },
    {
      "commit": "ac8a1b21986f06d0e54ddebb1e4962de23eb77ea",
      "tree": "b7de3900b87360ccd4d9da2409e7208020d4723e",
      "parents": [
        "cf559377b750271472aa0a717bf3b7d34abc0b39"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 23 00:58:19 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 23 02:10:23 2011 -0700"
      },
      "message": "Reinitialize KeyStore::mMasterKey after unlock (and add test-keystore)\n\nBug: 4599735\n\nChange-Id: Iee38a2e2929c45b6405214c9012819da09b273af\n"
    },
    {
      "commit": "65f993e0d8ea366bc5178423675ef3299eae3102",
      "tree": "25ce9d37eecea10aef5054dd5a6c7954e834240d",
      "parents": [
        "8969d9924c662ab4cdacc342bbdc33756db730be"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 22 14:57:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 22 14:57:25 2011 -0700"
      },
      "message": "Reconstruct sync frame indication for content served by the MPEG2TSExtractor\n\nStrip data up to the first IDR frame if necessary.\n\nChange-Id: I4a096785eb1a17b7484983788e223d188454771d\n"
    },
    {
      "commit": "e26e96bcc19b1cdac690d21b3986f09a502739e6",
      "tree": "cd6054763d0a2043088027f9cac129ecef27beb0",
      "parents": [
        "3106a9b7f5c5c6a62d3fa5772d8c2bb41d22c6eb"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 10 18:33:16 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 20 19:26:31 2011 -0700"
      },
      "message": "Pass the data fd number as a command line argument to \u0027bu\u0027\n\nThis way we don\u0027t have to muck with stdin/stdout just to get known\nfds for data handling.\n\nChange-Id: If87d19f4867c883a32d4e9afb91b915511b9df19\n"
    },
    {
      "commit": "0ac3031c159a0904e73eb4439cdc724d8df4a6e6",
      "tree": "27d80b0cb1d37b10c898340348ae863014c4a6e0",
      "parents": [
        "3a3efe756389cbda3ddf74c0c55d7a3ce68f3780"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 17 14:49:23 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 17 14:49:45 2011 -0700"
      },
      "message": "Implement remaining infrastructure for user disabling apps.\n\nChange-Id: If8135eb0e27ec36f8f159eb7b6397add7acd0299\n"
    },
    {
      "commit": "6e4ba2bf35c3c45dc829e5a863fa437d976d86f0",
      "tree": "861367e837d5d1208e846d71589f3dbc121deec8",
      "parents": [
        "decbe327d1515dd6c9fd1b6773f57b0a879f9149",
        "78b9c381aacff14536848c0e183bec3b83b02672"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 13 18:47:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 13 18:47:20 2011 -0700"
      },
      "message": "Merge \"Add an option to force to use HW codec in stagefright cmd tool\""
    },
    {
      "commit": "78b9c381aacff14536848c0e183bec3b83b02672",
      "tree": "61f26d8eafd82e3d63f114f27c148a8dcbd59df2",
      "parents": [
        "622d5441975fa16636d3304d42d27659af14cb49"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 13 17:20:27 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 13 17:23:01 2011 -0700"
      },
      "message": "Add an option to force to use HW codec in stagefright cmd tool\n\nChange-Id: If6c277dd5a3f7a0b62acd6721343618b0be085fc\n"
    },
    {
      "commit": "7bb843ca0777111dae7daf8f1b0705817cf523c4",
      "tree": "10545edc3ce21f38282d5e67e5bc08ff729884b3",
      "parents": [
        "dfc7958a2eafba52db90743a4707eed1d780b63b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:20:59 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 13 15:51:35 2011 -0700"
      },
      "message": "unify SurfaceTexture and Surface\n\nAdd the concept of synchronous dequeueBuffer in SurfaceTexture\nImplement {Surface|SurfaceTextureClient}::setSwapInterval()\nAdd SurfaceTexture logging\nfix onFrameAvailable\n"
    },
    {
      "commit": "f741e679c496f7345304a6543f01d7048e31d1a7",
      "tree": "e53a3b9f98c16611761a062dc0d60828ce74b365",
      "parents": [
        "aab49b40e8dd78aca67db160f5d0c787379c8f7f",
        "e2aa04908cfdf65ef309f1491f31a0c8846977ff"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 09 17:50:36 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 09 17:50:36 2011 -0700"
      },
      "message": "resolved conflicts for merge of e2aa0490 to master\n\nChange-Id: Id0448a1598fc93aca0652b29253e02586e35a067\n"
    },
    {
      "commit": "a1396dfe7ad6ec6953f544be42d69d7804ab0fd4",
      "tree": "f991e5d319b209f51e588cad2e0d032de9cf38f7",
      "parents": [
        "735463d1d9a1e490fa6b30d4273d24fc2f12bcd9",
        "021408910af170268cb486910d4dd5a7d838c2bb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 08 20:02:43 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 08 20:02:43 2011 -0700"
      },
      "message": "am 02140891: Merge \"Work on issue #4518815: Compatibility mode introduces compatibility regression...\" into honeycomb-mr2\n\n* commit \u0027021408910af170268cb486910d4dd5a7d838c2bb\u0027:\n  Work on issue #4518815: Compatibility mode introduces compatibility regression...\n"
    },
    {
      "commit": "5fd2169eabd77e6bfafaf456e58051a3bafb2bca",
      "tree": "77048c3540c64cad77e5c140b6477a321190c586",
      "parents": [
        "4381f6421ca408d1dc66430ddfb107c5011bfe25"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 07 14:09:47 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 08 18:45:43 2011 -0700"
      },
      "message": "Work on issue #4518815: Compatibility mode introduces compatibility regression...\n\n...for Market App iRunner\n\nThere were a lot of serious issues with how we updated (or often didn\u0027t update)\nthe display and resource state when switching compatibility mode in conjunction\nwith restarting and updating application components.  This addresses everything\nI could find.\n\nUnfortunately it does *not* fix this particular app.  I am starting to think this\nis just an issue in the app.  This change does fix a number of other problems\nI could repro, such as switching the compatibility mode of an IME.\n\nAlso a few changes here and there to get rid of $#*\u0026^!! debug logs.\n\nChange-Id: Ib15572eac9ec93b4b9966ddcbbc830ce9dec1317\n"
    },
    {
      "commit": "b5c462f801ec0a0b9dec99232b46f91e91984938",
      "tree": "20ffef97c8b3c951ffbd0e52a5005ccc077eb83f",
      "parents": [
        "8643aa0179e598e78d938c59035389054535a229",
        "351f32270a489577e040bbeccc423b0bac1637dc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 06 19:01:48 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 06 19:01:48 2011 -0700"
      },
      "message": "Merge \"Add force-stop subcommand for \u0027am\u0027.\""
    },
    {
      "commit": "e2afc2420d29c2d3d04a05ed5839c12f3b267b23",
      "tree": "d4e220241aa68bb8891f9d2c19c56d19eebc0126",
      "parents": [
        "aef1987f4e53efdc29216ac66d7412678a762b2e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 02 16:21:55 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jun 02 16:24:45 2011 -0700"
      },
      "message": "KeyStore.reset changes\n\nrestore keystore reset behavior of removing master key.\notherwise after reboot keystore has is LOCKED and not UNINITIALIZED\n\tcmds/keystore/keystore.cpp\n\nwhen removing password, reset the keystore, so it doesn\u0027t remain\nlocked with a now bogus password.\n\n\tcore/java/com/android/internal/widget/LockPatternUtils.java\n\nChange-Id: If5e0bb50b42599e9ca27a8b91d6cec12528419a1\n"
    },
    {
      "commit": "1a536e642f5078167d18277c56f60090d8d46364",
      "tree": "2e9452c8f2287242e9b0eaaec04ca0055ad1c8e7",
      "parents": [
        "cb0975b3c1c73d8bcadaca80e1ee99383750af60",
        "75a99709accef8cf221fd436d646727e7c8dd1f1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 01 15:14:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 01 15:14:36 2011 -0700"
      },
      "message": "Merge \"Restore from a previous full backup\u0027s tarfile\""
    },
    {
      "commit": "75a99709accef8cf221fd436d646727e7c8dd1f1",
      "tree": "9ce16dbf95890e8dad57d63724a6cdb3d36d6fb9",
      "parents": [
        "2978cef0a77550ea3a364ffbf42fc43f2029070e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed May 18 16:28:19 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 01 15:09:55 2011 -0700"
      },
      "message": "Restore from a previous full backup\u0027s tarfile\n\nUsage:  adb restore [tarfilename]\n\nRestores app data [and installs the apps if necessary from the backup\nfile] captured in a previous invocation of \u0027adb backup\u0027.  The user\nmust explicitly acknowledge the action on-device before it is allowed\nto proceed; this prevents any \"invisible\" pushes of content from the\nhost to the device.\n\nKnown issues:\n\n* The settings databases and wallpaper are saved/restored, but lots\n  of other system state is not yet captured in the full backup.  This\n  means that for practical purposes this is usable for 3rd party\n  apps at present but not for full-system cloning/imaging.\n\nChange-Id: I0c748b645845e7c9178e30bf142857861a64efd3\n"
    },
    {
      "commit": "5cfee3fabb3482c6a6df1c8b6f21e843cf214527",
      "tree": "c4190f1fa809eb1e5e7d028f21be510b2a5b3980",
      "parents": [
        "9b4157935af9e44571187a9533c2cc9b413383bf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 31 01:00:15 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 01 14:29:59 2011 -0700"
      },
      "message": "Integrating keystore with keyguard (Part 1 of 4)\n\nSummary:\n\nframeworks/base\n  keystore rewrite\n  keyguard integration with keystore on keyguard entry or keyguard change\n  KeyStore API simplification\n\npackages/apps/Settings\n  Removed com.android.credentials.SET_PASSWORD intent support\n  Added keyguard requirement for keystore use\n\npackages/apps/CertInstaller\n  Tracking KeyStore API changes\n  Fix for NPE in CertInstaller when certificate lacks basic constraints\n\npackages/apps/KeyChain\n  Tracking KeyStore API changes\n\nDetails:\n\nframeworks/base\n\n   Move keystore from C to C++ while rewriting password\n   implementation. Removed global variables. Added many comments.\n\n\tcmds/keystore/Android.mk\n\tcmds/keystore/keystore.h\n\tcmds/keystore/keystore.c \u003d\u003e cmds/keystore/keystore.cpp\n\tcmds/keystore/keystore_cli.c \u003d\u003e cmds/keystore/keystore_cli.cpp\n\n   Changed saveLockPattern and saveLockPassword to notify the keystore\n   on changes so that the keystore master key can be reencrypted when\n   the keyguard changes.\n\n\tcore/java/com/android/internal/widget/LockPatternUtils.java\n\n   Changed unlock screens to pass values for keystore unlock or initialization\n\n\tpolicy/src/com/android/internal/policy/impl/PasswordUnlockScreen.java\n\tpolicy/src/com/android/internal/policy/impl/PatternUnlockScreen.java\n\n   KeyStore API changes\n   - renamed test() to state(), which now return a State enum\n   - made APIs with byte[] key arguments private\n   - added new KeyStore.isEmpty used to determine if a keyguard is required\n\n\tkeystore/java/android/security/KeyStore.java\n\n   In addition to tracking KeyStore API changes, added new testIsEmpty\n   and improved some existing tests to validate expect values.\n\n\tkeystore/tests/src/android/security/KeyStoreTest.java\n\npackages/apps/Settings\n\n    Removing com.android.credentials.SET_PASSWORD intent with the\n    removal of the ability to set an explicit keystore password now\n    that the keyguard value is used. Changed to ensure keyguard is\n    enabled for keystore install or unlock. Cleaned up interwoven\n    dialog handing into discrete dialog helper classes.\n\n\tAndroidManifest.xml\n\tsrc/com/android/settings/CredentialStorage.java\n\n    Remove layout for entering new password\n\n\tres/layout/credentials_dialog.xml\n\n    Remove enable credentials checkbox\n\n\tres/xml/security_settings_misc.xml\n\tsrc/com/android/settings/SecuritySettings.java\n\n    Added ability to specify minimum quality key to ChooseLockGeneric\n    Activity. Used by CredentialStorage, but could also be used by\n    CryptKeeperSettings. Changed ChooseLockGeneric to understand\n    minimum quality for keystore in addition to DPM and device\n    encryption.\n\n\tsrc/com/android/settings/ChooseLockGeneric.java\n\n    Changed to use getActivePasswordQuality from\n    getKeyguardStoredPasswordQuality based on experience in\n    CredentialStorage. Removed bogus class javadoc.\n\n\tsrc/com/android/settings/CryptKeeperSettings.java\n\n    Tracking KeyStore API changes\n\n\tsrc/com/android/settings/vpn/VpnSettings.java\n\tsrc/com/android/settings/wifi/WifiSettings.java\n\n   Removing now unused string resources\n\n\tres/values-af/strings.xml\n\tres/values-am/strings.xml\n\tres/values-ar/strings.xml\n\tres/values-bg/strings.xml\n\tres/values-ca/strings.xml\n\tres/values-cs/strings.xml\n\tres/values-da/strings.xml\n\tres/values-de/strings.xml\n\tres/values-el/strings.xml\n\tres/values-en-rGB/strings.xml\n\tres/values-es-rUS/strings.xml\n\tres/values-es/strings.xml\n\tres/values-fa/strings.xml\n\tres/values-fi/strings.xml\n\tres/values-fr/strings.xml\n\tres/values-hr/strings.xml\n\tres/values-hu/strings.xml\n\tres/values-in/strings.xml\n\tres/values-it/strings.xml\n\tres/values-iw/strings.xml\n\tres/values-ja/strings.xml\n\tres/values-ko/strings.xml\n\tres/values-lt/strings.xml\n\tres/values-lv/strings.xml\n\tres/values-ms/strings.xml\n\tres/values-nb/strings.xml\n\tres/values-nl/strings.xml\n\tres/values-pl/strings.xml\n\tres/values-pt-rPT/strings.xml\n\tres/values-pt/strings.xml\n\tres/values-rm/strings.xml\n\tres/values-ro/strings.xml\n\tres/values-ru/strings.xml\n\tres/values-sk/strings.xml\n\tres/values-sl/strings.xml\n\tres/values-sr/strings.xml\n\tres/values-sv/strings.xml\n\tres/values-sw/strings.xml\n\tres/values-th/strings.xml\n\tres/values-tl/strings.xml\n\tres/values-tr/strings.xml\n\tres/values-uk/strings.xml\n\tres/values-vi/strings.xml\n\tres/values-zh-rCN/strings.xml\n\tres/values-zh-rTW/strings.xml\n\tres/values-zu/strings.xml\n\tres/values/strings.xml\n\npackages/apps/CertInstaller\n\n  Tracking KeyStore API changes\n\tsrc/com/android/certinstaller/CertInstaller.java\n\n  Fix for NPE in CertInstaller when certificate lacks basic constraints\n\tsrc/com/android/certinstaller/CredentialHelper.java\n\npackages/apps/KeyChain\n\n  Tracking KeyStore API changes\n\tsrc/com/android/keychain/KeyChainActivity.java\n\tsrc/com/android/keychain/KeyChainService.java\n\tsupport/src/com/android/keychain/tests/support/IKeyChainServiceTestSupport.aidl\n\tsupport/src/com/android/keychain/tests/support/KeyChainServiceTestSupport.java\n\ttests/src/com/android/keychain/tests/KeyChainServiceTest.java\n\nChange-Id: Ic141fb5d4b43d12fe62cb1e29c7cbd891b4be35d\n"
    },
    {
      "commit": "c12b7ba81ec3b486f21394810d827258ba888ee4",
      "tree": "5de67d889b0084a54ec5678636d8b5bd3ec22888",
      "parents": [
        "a8607644026b5cd0860a897e80e491de41b64232"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu May 26 21:52:39 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 27 16:35:11 2011 -0700"
      },
      "message": "sensorservice can now be ran standalone\n\nChange-Id: I6e757f31f1e020046038e5ab84e71b8689a0aed3\n"
    },
    {
      "commit": "351f32270a489577e040bbeccc423b0bac1637dc",
      "tree": "65ada0e6cbf429e7cb094d536d5c84746c56bc87",
      "parents": [
        "8eed7aded77b826738c82cfe3b6a1440ac0786d9"
      ],
      "author": {
        "name": "Xianzhu Wang",
        "email": "wangxianzhu@google.com",
        "time": "Fri May 13 15:46:20 2011 +0800"
      },
      "committer": {
        "name": "Xianzhu Wang",
        "email": "wangxianzhu@google.com",
        "time": "Fri May 27 10:26:04 2011 +0800"
      },
      "message": "Add force-stop subcommand for \u0027am\u0027.\n\nIt\u0027s useful for some testing and debugging, to ensure all processes\nare stopped before testing. \u0027kill\u0027 doesn\u0027t always work because sometimes the\nsystem will restart the process immediately (e.g. if an app is running in\nbackground).\n\nChange-Id: I2c0caa38f74ee65ad6c35172fbf505227be7e7c3\n"
    },
    {
      "commit": "5e34a1945a6b26dff5551a37627c5216b076d896",
      "tree": "ad320f5935177d91c59136df2f65544c3a08c332",
      "parents": [
        "101139cc8f5b975dfacf1a2ffd3bdae8e3907f65",
        "1d8f8819f1e98cdf3b7756396158613e95fe9eb6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 26 13:34:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 26 13:34:42 2011 -0700"
      },
      "message": "am 1d8f8819: Merge \"Break apart queries to getInstalled* API DO NOT MERGE\" into honeycomb-mr2\n\n* commit \u00271d8f8819f1e98cdf3b7756396158613e95fe9eb6\u0027:\n  Break apart queries to getInstalled* API DO NOT MERGE\n"
    },
    {
      "commit": "e8b26dcec7765786bbf063b3ae6b967b8b547ab6",
      "tree": "0300409c65c578b2b800795345423d27f782bd7c",
      "parents": [
        "3453b1c584f456a18f17d74a72c044b4e39c6405"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 25 15:02:50 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 26 11:31:16 2011 -0700"
      },
      "message": "Extract embedded cover art (aka poster frame) in mp4 files\n\nChange-Id: Ic9421ee27b9aa3b27df00878b887de20f25d232b\n"
    },
    {
      "commit": "1bb6cf18c0039cb9d2a60713ea34d3709af58c5c",
      "tree": "ca4c1bb52197b19df287cd4dbc4cd972ce454eef",
      "parents": [
        "42f8094c066209a65b09d53611ef5c93daba4c51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 15 17:50:10 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 26 09:53:24 2011 -0700"
      },
      "message": "Break apart queries to getInstalled* API DO NOT MERGE\n\nTo avoid blowing past the Binder IPC limit, change the\nPackageManagerService to have a DB-like interaction where the client\ntells the service the last \"row\" that it read.\n\nThe fact that we use a HashMap instead of a TreeMap makes this\nproblematic. For now we\u0027re just making a new ArrayList for the keys and\nthen sorting them for each call. This can make the API slower for callers\nof this, but it\u0027s probably greatly overshadowed by the cost of the data\ntransfer itself.\n\nBug: 4064282\nChange-Id: Ia3a8cdaa94581ed9336f2e05694b8c8a5f757bce\n"
    },
    {
      "commit": "ebed7d6e35f7f960e6e6add2b8ab7c7a31a511c3",
      "tree": "ae346479a6c069a3a57acecb18a0b0a563325e3f",
      "parents": [
        "cbc38e74f028d9e337eba0f3ed7c435310cc10c2"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon May 16 17:08:42 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue May 24 12:01:25 2011 -0700"
      },
      "message": "Support wrapping app processes to inject debug instrumentation.\nBug: 4437846\n\nChange-Id: I4552501c693716b14714afb5c5248edaca9547ab\n"
    },
    {
      "commit": "a51b6fd6f8a53f040894ef07cf23695581595e6b",
      "tree": "b2e2b02e6a0568054fa279c54f50b7d2c80a9b18",
      "parents": [
        "3a9e712aca65ac49e7155e98e5d6b815da76f94b",
        "b2d0ee164a1cf7bab31302c5d3cdd62322574271"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 15:02:18 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 15:02:18 2011 -0700"
      },
      "message": "resolved conflicts for merge of b2d0ee16 to master\n\nChange-Id: I4483a6d0ccecfea4a1e66bb6eba80d13e8b9a3a4\n"
    },
    {
      "commit": "e6cd0c747e76723bc51a23925c239ae10f9d3b5c",
      "tree": "6fd4fa9f3e207f5a0aaf50edf972374196390a49",
      "parents": [
        "0a36cec642fb58e295d0608026890d95d0ae3cc0",
        "2433c443bb5fe96d9a39b59e10e3c03d791e2278"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 12:48:14 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 12:48:14 2011 -0700"
      },
      "message": "resolved conflicts for merge of 2433c443 to honeycomb-plus-aosp\n\nChange-Id: I3385f57e5761679e6700bcbe3c41deb3ecd43ba1\n"
    },
    {
      "commit": "2433c443bb5fe96d9a39b59e10e3c03d791e2278",
      "tree": "7feb2b64268b9b476e4fa5c91b19cdee3f86c117",
      "parents": [
        "4b999030ad3e9f8d392d72c725134ec3fb6d2290",
        "f2006f3123dcdf598e052051041b49c89710b53e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 19 11:04:01 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 19 11:04:01 2011 -0700"
      },
      "message": "am f2006f31: Merge \"Break apart queries to getInstalled* API\" into gingerbread\n\n* commit \u0027f2006f3123dcdf598e052051041b49c89710b53e\u0027:\n  Break apart queries to getInstalled* API\n"
    },
    {
      "commit": "cb4d1a91fc09fed1281781c4507e1e69afb476e5",
      "tree": "84590335e162c7904108fc7b2afc3110bab0dace",
      "parents": [
        "78ae81efa9d49b2697629f576e9f4beec6ec8b2b"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Tue May 17 21:35:54 2011 -0700"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Tue May 17 21:35:54 2011 -0700"
      },
      "message": "dumpstate: don\u0027t attempt to use vril-dump, it breaks adb bugreport\n\n\nhttp://b/4442803 vril-dump\u0027s usage of adb causes bugreport to hang\n\nlcm-dump.sh re-uses adb which breaks.\n\nChange-Id: I5eeb30f78793c0a6d10bfaf0097d6aa7b811cf66\nSigned-off-by: JP Abgrall \u003cjpa@google.com\u003e\n"
    },
    {
      "commit": "9d31154d0b0ecbc5a36733ac3a8b70dcae18bf9c",
      "tree": "21da3d76fd4b3e8d65228155844ee138f28e3f2c",
      "parents": [
        "14a2935809e73a9d824888dc837f2f017100fd26",
        "b68c768ddb57407bc253230c677056329c9e4bae"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 21:39:47 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 16 21:39:47 2011 -0700"
      },
      "message": "am b68c768d: am 41744836: am 7916ac65: Add new command line option to change global screen size.\n\n* commit \u0027b68c768ddb57407bc253230c677056329c9e4bae\u0027:\n  Add new command line option to change global screen size.\n"
    },
    {
      "commit": "417448369c170a34d76c477aa19c5293e3caa1df",
      "tree": "a19b5658af4abd13b8c132102898ab1b32669bb8",
      "parents": [
        "7b0339a8adca1347fe7ac3ac118c903ff32442a8",
        "7916ac65dc492e4e1431879875c77d7121fbf82e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 21:21:24 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 16 21:21:24 2011 -0700"
      },
      "message": "am 7916ac65: Add new command line option to change global screen size.\n\n* commit \u00277916ac65dc492e4e1431879875c77d7121fbf82e\u0027:\n  Add new command line option to change global screen size.\n"
    },
    {
      "commit": "7916ac65dc492e4e1431879875c77d7121fbf82e",
      "tree": "a673e4cc163ea0e1d27d5a38fd2d37003812e37d",
      "parents": [
        "8f3dbe1c377e64584c3ec10edf664fb278648109"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 20:45:48 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 20:55:41 2011 -0700"
      },
      "message": "Add new command line option to change global screen size.\n\nFor example:\n\nadb shell am display-size 1024x600\n\nChange-Id: I5df462acd3323bdaaaefa3126faea7dd8595b726\n"
    },
    {
      "commit": "14a2935809e73a9d824888dc837f2f017100fd26",
      "tree": "408f6decede257f9c219355bb470906fefac84f1",
      "parents": [
        "4383243d0067d76a07966ff2178ea4d0c20271d3"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 16 16:22:06 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon May 16 16:57:32 2011 -0700"
      },
      "message": "bu - add handling for both \u0027backup\u0027 and \u0027restore\u0027 modes\n\nRequires a parallel change in adb to support the new syntax.\n\nChange-Id: Iff30cb247e424b6817af121c018f3c4e40b9f81a\n"
    },
    {
      "commit": "2a20583a5f436d66ab73cd6c0fdc73e59a3cecad",
      "tree": "5fd55da4396a2179afdc4ffc3329db03b1117b95",
      "parents": [
        "4bfc1cc0a9bea7d7529b6c92daeb65660961b7d4",
        "700ab1c75862babba90f54e02bdc877becd4f4fc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 16 11:06:28 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 16 11:06:28 2011 -0700"
      },
      "message": "am 700ab1c7: Merge \"DO NOT MERGE.  Integrate from master: Improve activity manager debug dumps.\" into honeycomb-mr2\n\n* commit \u0027700ab1c75862babba90f54e02bdc877becd4f4fc\u0027:\n  DO NOT MERGE.  Integrate from master: Improve activity manager debug dumps.\n"
    },
    {
      "commit": "7b06e3516ccd452224d9b160c8cf54c3b9f3597d",
      "tree": "b3ab80f5539f7ba3c035d25c1949a70a0ca183bf",
      "parents": [
        "32ebca5ba2ebd58a41a5b1ede1105db896bef060",
        "7a2a87d6457885c5d3d4dbf335be101aa9c5c3ab"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sun May 15 14:47:45 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun May 15 14:47:45 2011 -0700"
      },
      "message": "am 7a2a87d6: am a1c29d30: Merge \"Support for Vendor RIL dump of baseband logs\" into honeycomb-LTE\n\n* commit \u00277a2a87d6457885c5d3d4dbf335be101aa9c5c3ab\u0027:\n  Support for Vendor RIL dump of baseband logs\n"
    },
    {
      "commit": "71bbe7a87cc75dba446db807a0f223cba8fa2e6c",
      "tree": "45adc30bc6bf457162e94cfa9213eba4288e9d15",
      "parents": [
        "6e41b32dd08a866cb7158b387646e96c9105831b"
      ],
      "author": {
        "name": "John Michelau",
        "email": "john.michelau@motorola.com",
        "time": "Wed Sep 22 16:49:19 2010 -0500"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Sat May 14 18:54:47 2011 -0700"
      },
      "message": "Support for Vendor RIL dump of baseband logs\n\nAdded hook for Vendor RIL to provide a dump of the underlying\nbaseband\u0027s logs.  The Vendor RIL must implement the actual executable\nthat does the capture.\n\nChange-Id: I40fdf2ccc4bb14a9cef92b7866fad19684502524\n"
    },
    {
      "commit": "9a84983a9fd9959671e102045eaf185b83291269",
      "tree": "7235da3c8ad520b16425fee7984cbcd0cacf9b0b",
      "parents": [
        "f9dd34f4d3203fd50363b3b0247c5d0db6fe2c8f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Apr 07 15:11:57 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 13 18:38:19 2011 -0700"
      },
      "message": "DO NOT MERGE.  Integrate from master: Improve activity manager debug dumps.\n\nActivity manager now does all dump requests into apps\nasynchronously, so it can nicely timeout if there is an\napp problem.  Also lots of general cleanup of the am\ndump output.\n\nChange-Id: I99447b87f77a701af52aeca984d93dfe931f065d\n"
    },
    {
      "commit": "88bf0e5ae7d0573f7d7aa88ce6c0a47a59b3047d",
      "tree": "287852fc49e0b8ac326f792c4e1c2a8354332a2d",
      "parents": [
        "c51ab9b93ddf964f79cde3c2b47d6ac0a53cac2f",
        "3d0724dc220a2e027b9e38f61c39c84c28a505d5"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 17:15:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 12 17:15:22 2011 -0700"
      },
      "message": "Merge \"resolved conflicts for merge of 0e59729b to master\""
    },
    {
      "commit": "3d0724dc220a2e027b9e38f61c39c84c28a505d5",
      "tree": "d0bb402a46c3de05da7f086c629b78c3b175b3ba",
      "parents": [
        "674b595fa5299d138e068b2b786027d6d6225394",
        "0e59729b104e48c7d935026f565c4b45f1f37d12"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 15:39:41 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 15:39:41 2011 -0700"
      },
      "message": "resolved conflicts for merge of 0e59729b to master\n\nChange-Id: I2d3a6bddf66b1df0c101c45ea2fec1cf65caf01b\n"
    },
    {
      "commit": "972808164adde6c0784e9c836d06219a9cf7eb7f",
      "tree": "5aa738ac6daee71126ec21792618328ee643fe65",
      "parents": [
        "76a118dd9e1bc8be33e1e22b7264b7f918f6f050",
        "0f1de9adde0b52d2a385a76232bd7ac30c3eeea2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 15:01:53 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 12 15:01:53 2011 -0700"
      },
      "message": "am 0f1de9ad: New compat mode front end: UI and persistence.\n\n* commit \u00270f1de9adde0b52d2a385a76232bd7ac30c3eeea2\u0027:\n  New compat mode front end: UI and persistence.\n"
    },
    {
      "commit": "34bb419e5946ab28112e9e27a4d1b3928d31e0e2",
      "tree": "3186b2ce206a101b19285660af602ec66bdbc831",
      "parents": [
        "b856f43ea7a3a5261a93e432e5ea80005e972530"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed May 11 14:15:23 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu May 12 14:09:57 2011 -0700"
      },
      "message": "update for new audio.h header location\n\nChange-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "0f1de9adde0b52d2a385a76232bd7ac30c3eeea2",
      "tree": "6d30064324ea987411955a88cb0272ddb27d39b2",
      "parents": [
        "f3cdea937b8b659f959d5e77f4a17f749f85c6ae"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 11 17:34:49 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 12 13:28:45 2011 -0700"
      },
      "message": "New compat mode front end: UI and persistence.\n\nAdds a really crappy UI for toggling compat mode.\n\nPersists compat mode selection across boots.\n\nTurns on compat mode by default for newly installed apps.\n\nChange-Id: Idc83494397bd17c41450bc9e9a05e4386c509399\n"
    },
    {
      "commit": "4a627c71ff53a4fca1f961f4b1dcc0461df18a06",
      "tree": "270190b1e030424210b6375ca886c45db10c4fb6",
      "parents": [
        "2bb51bb203c117649db10ad8bd497f199ca797b0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Apr 01 14:43:32 2011 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue May 10 17:52:51 2011 -0700"
      },
      "message": "Full local backup infrastructure\n\nThis is the basic infrastructure for pulling a full(*) backup of the\ndevice\u0027s data over an adb(**) connection to the local device.  The\nbasic process consists of these interacting pieces:\n\n1. The framework\u0027s BackupManagerService, which coordinates the\n   collection of app data and routing to the destination.\n\n2. A new framework-provided BackupAgent implementation called\n   FullBackupAgent, which is instantiated in the target applications\u0027\n   processes in turn, and knows how to emit a datastream that contains\n   all of the app\u0027s saved data files.\n\n3. A new shell-level program called \"bu\" that is used to bridge from\n   adb to the framework\u0027s Backup Manager.\n\n4. adb itself, which now knows how to use \u0027bu\u0027 to kick off a backup\n   operation and pull the resulting data stream to the desktop host.\n\n5. A system-provided application that verifies with the user that\n   an attempted backup/restore operation is in fact expected and to\n   be allowed.\n\nThe full agent implementation is not used during normal operation of\nthe delta-based app-customized remote backup process.  Instead it\u0027s\nused during user-confirmed *full* backup of applications and all their\ndata to a local destination, e.g. via the adb connection.\n\nThe output format is \u0027tar\u0027.  This makes it very easy for the end\nuser to examine the resulting dataset, e.g. for purpose of extracting\nfiles for debug purposes; as well as making it easy to contemplate\nadding things like a direct gzip stage to the data pipeline during\nbackup/restore.  It also makes it convenient to construct and maintain\nsynthetic backup datasets for testing purposes.\n\nWithin the tar format, certain artificial conventions are used.\nAll files are stored within top-level directories according to\ntheir semantic origin:\n\napps/pkgname/a/  : Application .apk file itself\napps/pkgname/obb/: The application\u0027s associated .obb containers\napps/pkgname/f/  : The subtree rooted at the getFilesDir() location\napps/pkgname/db/ : The subtree rooted at the getDatabasePath() parent\napps/pkgname/sp/ : The subtree rooted at the getSharedPrefsFile() parent\napps/pkgname/r/  : Files stored relative to the root of the app\u0027s file tree\napps/pkgname/c/  : Reserved for the app\u0027s getCacheDir() tree; not stored.\n\nFor each package, the first entry in the tar stream is a file called\n\"_manifest\", nominally rooted at apps/pkgname.  This file contains some\nmetadata about the package whose data is stored in the archive.\n\nThe contents of shared storage can optionally be included in the tar\nstream. It is placed in the synthetic location:\n\nshared/...\n\nuid/gid are ignored; app uids are assigned at install time, and the\napp\u0027s data is handled from within its own execution environment, so\nwill automatically have the app\u0027s correct uid.\n\nForward-locked .apk files are never backed up.  System-partition\n.apk files are not backed up unless they have been overridden by a\npost-factory upgrade, in which case the current .apk *is* backed up --\ni.e. the .apk that matches the on-disk data.  The manifest preceding\neach application\u0027s portion of the tar stream provides version numbers\nand signature blocks for version checking, as well as an indication\nof whether the restore logic should expect to install the .apk before\nextracting the data.\n\nSystem packages can designate their own full backup agents.  This is\nto manage things like the settings provider which (a) cannot be shut\ndown on the fly in order to do a clean snapshot of their file trees,\nand (b) manage data that is not only irrelevant but actively hostile\nto non-identical devices -- CDMA telephony settings would seriously\nmess up a GSM device if emplaced there blind, for example.\n\nWhen a full backup or restore is initiated from adb, the system will\npresent a confirmation UI that the user must explicitly respond to\nwithin a short [~ 30 seconds] timeout.  This is to avoid the\npossibility of malicious desktop-side software secretly grabbing a copy\nof all the user\u0027s data for nefarious purposes.\n\n(*) The backup is not strictly a full mirror.  In particular, the\n    settings database is not cloned; it is handled the same way that\n    it is in cloud backup/restore.  This is because some settings\n    are actively destructive if cloned onto a different (or\n    especially a different-model) device: telephony settings and\n    AndroidID are good examples of this.\n\n(**) On the framework side it doesn\u0027t care that it\u0027s adb; it just\n    sends the tar stream to a file descriptor.  This can easily be\n    retargeted around whatever transport we might decide to use\n    in the future.\n\nKNOWN ISSUES:\n\n* the security UI is desperately ugly; no proper designs have yet\n  been done for it\n* restore is not yet implemented\n* shared storage backup is not yet implemented\n* symlinks aren\u0027t yet handled, though some infrastructure for\n  dealing with them has been put in place.\n\nChange-Id: Ia8347611e23b398af36ea22c36dff0a276b1ce91\n"
    },
    {
      "commit": "aa9d84c37e05f696ec158dac98ce38cf41e18314",
      "tree": "49a8e08d51840eec7ff20b624c59408f2f7523aa",
      "parents": [
        "28e77e616d8f005c8e07d6f28a83f8ca9772aedf",
        "05be6d6fe09ddfb706d1bef3b20c3d37f45e3c8a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 19:00:59 2011 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 19:00:59 2011 -0700"
      },
      "message": "resolved conflicts for merge of 05be6d6f to master\n\nChange-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212\n"
    },
    {
      "commit": "4907d1d5e2c7d244b07579b8c52153df69754e85",
      "tree": "6e670ce463590a36bcbdec8df5a093e6fc3d2f4e",
      "parents": [
        "45364dc4bfe3e6118ad61f1d38489fe63418699a",
        "0c6cbf410a642f6e9cea7cca0a6e53a4a3cdd324"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 17:08:40 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 09 17:08:40 2011 -0700"
      },
      "message": "am 0c6cbf41: Merge \"Better compat mode part one: start scaling windows.\" into honeycomb-mr2\n\n* commit \u00270c6cbf410a642f6e9cea7cca0a6e53a4a3cdd324\u0027:\n  Better compat mode part one: start scaling windows.\n"
    },
    {
      "commit": "e2515eebf42c763c0a2d9f873a153711778cfc17",
      "tree": "ee159940f05c439d0524771bfbfe6b551c82c2d4",
      "parents": [
        "158e3582c03ab9e0221718da20fc8854bb9216d0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 27 18:52:56 2011 -0400"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 09 17:03:24 2011 -0700"
      },
      "message": "Better compat mode part one: start scaling windows.\n\nFirst step of improving app screen size compatibility mode.  When\nrunning in compat mode, an application\u0027s windows are scaled up on\nthe screen rather than being small with 1:1 pixels.\n\nCurrently we scale the application to fill the entire screen, so\ndon\u0027t use an even pixel scaling.  Though this may have some\nnegative impact on the appearance (it looks okay to me), it has a\nbig benefit of allowing us to now treat these apps as normal\nfull-screens apps and do the normal transition animations as you\nmove in and out and around in them.\n\nThis introduces fun stuff in the input system to take care of\nmodifying pointer coordinates to account for the app window\nsurface scaling.  The input dispatcher is told about the scale\nthat is being applied to each window and, when there is one,\nadjusts pointer events appropriately as they are being sent\nto the transport.\n\nAlso modified is CompatibilityInfo, which has been greatly\nsimplified to not be so insane and incomprehendible.  It is\nnow simple -- when constructed it determines if the given app\nis compatible with the current screen size and density, and\nthat is that.\n\nThere are new APIs on ActivityManagerService to put applications\nthat we would traditionally consider compatible with larger screens\nin compatibility mode.  This is the start of a facility to have\na UI affordance for a user to switch apps in and out of\ncompatibility.\n\nTo test switching of modes, there is a new variation of the \"am\"\ncommand to do this: am screen-compat [on|off] [package]\n\nThis mode switching has the fundamentals of restarting activities\nwhen it is changed, though the state still needs to be persisted\nand the overall mode switch cleaned up.\n\nFor the few small apps I have tested, things mostly seem to be\nworking well.  I know of one problem with the text selection\nhandles being drawn at the wrong position because at some point\nthe window offset is being scaled incorrectly.  There are\nprobably other similar issues around the interaction between\ntwo windows because the different window coordinate spaces are\ndone in a hacky way instead of being formally integrated into\nthe window manager layout process.\n\nChange-Id: Ie038e3746b448135117bd860859d74e360938557\n"
    },
    {
      "commit": "59f19e48c1c043bb9debdc35d166e397e2125d33",
      "tree": "5277f58327257cab63baaa7052573e1883501eb6",
      "parents": [
        "a5720192fe78337bcad9f509c1bbb1f8f3abb3c3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 06 19:22:12 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 06 19:22:12 2011 -0700"
      },
      "message": "clear boot-animation background with black (not transparent) pixels\n\nChange-Id: I2fcf9f303e8324cefaa2d96f1c46647f70980bb2\n"
    },
    {
      "commit": "7277744e8de8ad66a5e4e1d44db6057047edf1c3",
      "tree": "50bb1ddf46d6da9e7123c9ca83a673b50dd39c8b",
      "parents": [
        "8e3b17ad13a07ccfe904fa787c0be4cc92d85c0b",
        "67c92fbdfe52a94804f021c2255132c0f3550875"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 29 10:26:26 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Apr 29 10:26:26 2011 -0700"
      },
      "message": "am 67c92fbd: am 5f2ff42b: Add data to bugreports.\n\n* commit \u002767c92fbdfe52a94804f021c2255132c0f3550875\u0027:\n  Add data to bugreports.\n"
    },
    {
      "commit": "5f2ff42b282e093b61b9e7b07c79a74ea8ce3272",
      "tree": "d0593b837f864d5ba2724937edf3e5af23e5a311",
      "parents": [
        "d7f739b13e0336d6dd02df18d16a73636a795c3f"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Apr 28 17:10:23 2011 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Apr 29 09:43:49 2011 -0700"
      },
      "message": "Add data to bugreports.\n\nInclude IPv6 routes and iptables data.\n\nChange-Id: Ie9bca8a935f93933082eef0c45f83a17be76b7ed\n"
    },
    {
      "commit": "24fc2fb1c541e954b83fd31ea9f786a5e9b45501",
      "tree": "e85b3ff86b73d56e16ab640919d251c046371c65",
      "parents": [
        "4dc22e77cfd2a1c3671e5646ee87c5e4c15596a0"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 22:30:36 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 13:10:10 2011 -0700"
      },
      "message": "audio/media: convert to using the audio HAL and new audio defs\n\nChange-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "9638e5c167be321643bf3f3ee39e3fb45541fb3b",
      "tree": "ec79a54e7f44db04b4b5cc7f09ba944f6836a258",
      "parents": [
        "2a231f8435dba525c838779e0fd44710ea23cd98"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:19:32 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:26:11 2011 -0700"
      },
      "message": "Get rid of the \"pid\" parameter from createSurface\n\nChange-Id: I28635e3f803e6abe965d79998e305f54a202465d\n"
    },
    {
      "commit": "25641ca1ac5b09727f86fe01389877332a00455d",
      "tree": "e18f66c852164f4fbc6fbdf3d7c689b9b2ac3d83",
      "parents": [
        "08d1f937236230756bffde241ad6b335da368cf9",
        "0b285499db739ba50f2f839d633e763c70e67f96"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Apr 19 10:41:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 19 10:41:20 2011 -0700"
      },
      "message": "Merge \"Plumbing in PackageManager and installd for multi-user support.\""
    }
  ],
  "next": "08d1f937236230756bffde241ad6b335da368cf9"
}
