)]}'
{
  "log": [
    {
      "commit": "f79811e7b9611066b3ca2df3ceea07bdd99597e9",
      "tree": "b4ef0d5584642221e5fc7d82fae186ea68ecbdba",
      "parents": [
        "88a23f2f70222459f057ec8a6bbe8eccc8a7b549"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Feb 01 18:45:05 2013 -0800"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Fri Feb 01 18:47:22 2013 -0800"
      },
      "message": "LocationManagerService: Add debug flag lookup from properties\n\nInstead of hardcoding true/false in the code:\n setprop log.LocationManagerService DEBUG\nworks just fine. Or the reboot-proof version in userdebug/eng builds:\ncat \u003e /data/local.prop \u003c\u003ceof\nlog.tag.LocationManagerService\u003dDEBUG\neof\n\nChange-Id: If4efad1c3adc401c0cb5d1a3cc449b53224ead08\n"
    },
    {
      "commit": "447d94684ee73046d769649d8247aacd581bd6e3",
      "tree": "e06e136d19aee8777457233c7994c4b5c4b9c365",
      "parents": [
        "0214f205f619ebc23b5069880afdb09259b0ced7"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 01 19:46:20 2013 +0000"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 01 12:24:42 2013 -0800"
      },
      "message": "\"Fixing backwards cmpatibility for enabling explore by touch\"\"\n\nThis reverts commit d1ed3cea37e4156eab14b7dc8207a520c9eab700\n\nChange-Id: I622ef034526f8f006a5a233e72487b062020e4f6\n"
    },
    {
      "commit": "0214f205f619ebc23b5069880afdb09259b0ced7",
      "tree": "0d7638b896b38de4c06a73655c447cc3fea4daec",
      "parents": [
        "9b4a2858bdd206d67d77c80b383bfd776dc88e71",
        "d1ed3cea37e4156eab14b7dc8207a520c9eab700"
      ],
      "author": {
        "name": "Mike Cleron",
        "email": "mcleron@google.com",
        "time": "Fri Feb 01 18:57:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 18:57:23 2013 +0000"
      },
      "message": "Merge \"Revert \"Fixing backwards cmpatibility for enabling explore by touch\"\""
    },
    {
      "commit": "d1ed3cea37e4156eab14b7dc8207a520c9eab700",
      "tree": "cdc028be2b0ce578141384b6fe5c3b1b457ce078",
      "parents": [
        "0a9c7c144671f70f5f1af222050bd3ec6b11fe41"
      ],
      "author": {
        "name": "Mike Cleron",
        "email": "mcleron@google.com",
        "time": "Fri Feb 01 18:36:41 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 18:36:41 2013 +0000"
      },
      "message": "Revert \"Fixing backwards cmpatibility for enabling explore by touch\"\n\nThis reverts commit 0a9c7c144671f70f5f1af222050bd3ec6b11fe41\n\nChange-Id: I8da530a6d0a57163522d5a63326e787a8d22ecbf\n"
    },
    {
      "commit": "4a900acdef4559f9f84ca7e2bce45485215fc130",
      "tree": "d347a3b48ddbcc137c68db83cc9d1d358a2169e1",
      "parents": [
        "97273d50ce5b5689a1c787ebfed2ba3927de085a"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Wed Jan 30 14:04:10 2013 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@android.com",
        "time": "Fri Feb 01 13:26:17 2013 -0500"
      },
      "message": "Migrate package notification restrictions to AppOps.\n\nChange-Id: I23064ce3014d2446d009bbdff92b301280e8b989\n"
    },
    {
      "commit": "97273d50ce5b5689a1c787ebfed2ba3927de085a",
      "tree": "f395b1d5fc19604326a4531dffe5b3ff17fba995",
      "parents": [
        "c580168011334db756f5e68aa005d20bace69171",
        "0a9c7c144671f70f5f1af222050bd3ec6b11fe41"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 01 08:53:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 08:53:24 2013 +0000"
      },
      "message": "Merge \"Fixing backwards cmpatibility for enabling explore by touch\""
    },
    {
      "commit": "0a9c7c144671f70f5f1af222050bd3ec6b11fe41",
      "tree": "9f2062e418e4427a22a70d00f127046b87202704",
      "parents": [
        "0ec0418c6eac5076774a74855725d9df53141907"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 01 00:47:29 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Fri Feb 01 00:47:29 2013 -0800"
      },
      "message": "Fixing backwards cmpatibility for enabling explore by touch\n\nChange-Id: I8cbc4f03223d289547e3f3f6d1f528ad5b4f6f72\n"
    },
    {
      "commit": "d4b1d9cf9cee4bd4f234e30069996dc7e449f0e7",
      "tree": "df5fe22e7235676504fd57ef33103192c60f4a39",
      "parents": [
        "f48a2d30c5d5f7c167310ff9ca1cd2310121be7c",
        "78a4c718e30b6af69fafa6c017af3b2719868631"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Thu Jan 31 19:24:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 19:24:42 2013 +0000"
      },
      "message": "Merge changes I4859c8db,I7643024d\n\n* changes:\n  Add the TZInfo updater and relevant intent.\n  Fix ConfigUpdater for binary files.\n"
    },
    {
      "commit": "f48a2d30c5d5f7c167310ff9ca1cd2310121be7c",
      "tree": "1ea858e5f14a80afcc4d9b58ca5c6f6c8ca0b09e",
      "parents": [
        "ec695824af7ab263eaae613b87f2c0b24f176f91",
        "7c51284d8019ed04ab296be84839d8a90ac042fa"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jan 31 07:53:43 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 07:53:43 2013 +0000"
      },
      "message": "Merge \"Add accessibility actions for text editing.\""
    },
    {
      "commit": "7c51284d8019ed04ab296be84839d8a90ac042fa",
      "tree": "54a952cca4a44f64918ecdcbd4f5c7f2f778f7c6",
      "parents": [
        "8c47e856b067057b5fcbb6eccfc79d1da4cff8f1"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 30 23:02:08 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 30 23:47:17 2013 -0800"
      },
      "message": "Add accessibility actions for text editing.\n\nCurrently text editing is pretty hard (certain operations even\nimpossible) for a blind person. To address the issue this change\nadds APIs that enable an accessibility service to perform basic\ntext editing operations such as copy, paste, cut, set selection,\nextend selection while moving at a given granularity.\n\nThe new APIs enable an accessibility service to expose a gesture\ndriven efficient text editing facility.\n\nbug:8098384\n\nChange-Id: I82b200138a3fdf4c0c316b774fc08a096ced29d0\n"
    },
    {
      "commit": "ec695824af7ab263eaae613b87f2c0b24f176f91",
      "tree": "6bd7205d726a1bdc98023002914559bc0c3d6141",
      "parents": [
        "c5401d4451dfb5edb627a35c1d3ad90cbcef77a1",
        "3822896e226567c6cd3ef84518d318abd33a7624"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Thu Jan 31 03:16:59 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 03:16:59 2013 +0000"
      },
      "message": "Merge \"Remove \"enhance web scripts\" from settings and make it requested by plug-ins.\""
    },
    {
      "commit": "78a4c718e30b6af69fafa6c017af3b2719868631",
      "tree": "b3ceb86141263f564bfe046db955fbed516609e6",
      "parents": [
        "ad462d2d1652eb9940aa95d1c4d757734aef508b"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed Jan 30 11:20:26 2013 -0800"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed Jan 30 17:11:44 2013 -0800"
      },
      "message": "Add the TZInfo updater and relevant intent.\n\nAlso add a hook for ConfigUpdateInstallReciever subclasses to\nchange the delivery of data- in this case, from raw text to\nb64 encoded binary.\n\nChange-Id: I4859c8db1cc97c2427310a108b2fef03975df2b4\n"
    },
    {
      "commit": "75d880dfb0bb1342bce0b0337c7ae752d75ff1b6",
      "tree": "cbb65ae87771ae5749e62966a04700b699598f72",
      "parents": [
        "984add522ed1b2ce351fc2ee5a9d478d9ee9312f",
        "5b7573e8352d945572a92b364e709bce5a9b7860"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Jan 31 00:32:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 00:32:36 2013 +0000"
      },
      "message": "Merge \"Revert \"Clean up published network condition reporting.\"\""
    },
    {
      "commit": "5b7573e8352d945572a92b364e709bce5a9b7860",
      "tree": "93547179c8847f8d16fe051b2deae8f462327903",
      "parents": [
        "82413d0b2acad73b9a008e0c53392a54f9555cf8"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Thu Jan 31 00:30:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 00:30:13 2013 +0000"
      },
      "message": "Revert \"Clean up published network condition reporting.\"\n\nIn some cases causes grey ICON\u0027s.\n\nThis reverts commit 82413d0b2acad73b9a008e0c53392a54f9555cf8\n\nChange-Id: I09f893d03651c3fb9fcb88ee9e5ac7ce6cb6e273\n"
    },
    {
      "commit": "ad462d2d1652eb9940aa95d1c4d757734aef508b",
      "tree": "b8cbd6172a8aa8bd2268f3f7423ac337eab0a9c2",
      "parents": [
        "90a318aadc68e4cd650064af1cca43664d46eeee"
      ],
      "author": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed Jan 30 11:19:54 2013 -0800"
      },
      "committer": {
        "name": "Geremy Condra",
        "email": "gcondra@google.com",
        "time": "Wed Jan 30 11:26:49 2013 -0800"
      },
      "message": "Fix ConfigUpdater for binary files.\n\nChange-Id: I7643024d5d59dcb6c867ad80d32e24e8da83ba0d\n"
    },
    {
      "commit": "da01da176d4798d293c90d6280ddc59c780baaa3",
      "tree": "f02457ba35c612de390b0c40968c8336a485e592",
      "parents": [
        "f5f8502271b04d63c518e3aecfd5eaf557904e72",
        "f1367b7e903a2a69a8f833bb272e91d77abd57c6"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Wed Jan 30 02:41:46 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 30 02:41:47 2013 +0000"
      },
      "message": "Merge \"Do not turn on imes unexpectedly with unit tests\""
    },
    {
      "commit": "d4d9364019ed071509213b9ce772f4a5904d2847",
      "tree": "e1b998350f4dcf680c1c981ca019acad6793e4d2",
      "parents": [
        "e8ae8b8982da37ca77bbaed8e98349d51dec824a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 29 16:12:48 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 29 16:12:48 2013 -0800"
      },
      "message": "Maybe fix build.\n\nChange-Id: Ibad8edb15e7cc332d6c29958a386d32a96f4e755\n"
    },
    {
      "commit": "7f54ffd0296ce6008b5ea949796e60248a85e2d8",
      "tree": "d47c55d8bf290d6624b5a19fcba6df42b6cc4478",
      "parents": [
        "6fc736971a66eb4b461931a5e972d51b65bfa68f",
        "8a2ed1d7c0c4f6476e39cc37d9ebd29c7562ce01"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 29 23:42:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 23:43:20 2013 +0000"
      },
      "message": "Merge \"Improve configuration of default preferred apps.\""
    },
    {
      "commit": "8a2ed1d7c0c4f6476e39cc37d9ebd29c7562ce01",
      "tree": "7e05d0d286de56965fcb0ead8c27bd568f26bbe9",
      "parents": [
        "93f770b59fa1bd0f2a5c18fcfaffd2a1fc54f585"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 29 15:18:29 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 29 15:18:29 2013 -0800"
      },
      "message": "Improve configuration of default preferred apps.\n\nThe file that defines default preferred apps is now more\nrobust.  It is no longer a raw dump of the package\nmanager settings, but instead a more general list of a\ntarget activity and filter.  When reading it, the remaining\ninformation (match value, set of potential matches) is\ndetermined dynamically.\n\nChange-Id: I0edc6e0d2ed3dd2a6e2238992f18f7fc1f51d8d4\n"
    },
    {
      "commit": "3822896e226567c6cd3ef84518d318abd33a7624",
      "tree": "6e755134d69f6b6ecac12d0ee949124e42ed43a3",
      "parents": [
        "8c47e856b067057b5fcbb6eccfc79d1da4cff8f1"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 01:04:35 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 13:56:22 2013 -0800"
      },
      "message": "Remove \"enhance web scripts\" from settings and make it requested by plug-ins.\n\nCurrently we have an \"enhance web accessibility\" setting that has to be\nenabled to make sure web content is accessible. We added the setting to\nget user consent because we are injecting JavaScript-based screen-reader\npulled from the Google infrastructure. However, many users do not know\nthat and (as expected) do not read the user documentation, resulting in\ncritique for lacking accessibility support in WebViews with JavaScript\nenabled (Browser, Gmail, etc).\n\nTo smoothen the user experience now \"enhance web accessibility\" is a\nfeature an accessibility plug-in can request, similarly to explore by\ntouch. Now a user does not need to know that she has to explicitly\nenable the setting and web accessibility will work out-of-the-box.\n\nBefore we were showing a dialog when a plug-in tries to put the device\nin a touch exploration mode. However, now that we have one more feature\na plug-in can request, showing two dialogs (assume a plug-in wants both\nfeatures) will mean that a user should potentially deal with three\ndialogs, one for enabling the service, and one for each feature. We\ncould merge the dialogs but still the user has to poke two dialogs.\n\nIt seems that the permission mechanism is a perfect fit for getting\nuser permission for an app to do something, in this case to enable\nan accessibility feature. We need a separate permission for explore\nby touch and enhance web accessibility since the former changes the\ninteraction model and the latter injects JavaScript in web pages. It\nis critical to get user consent for the script injection part so we\nneed a well-documented permission rather a vague umbrella permission\nfor poking accessibility features. To allow better grouping of the\naccessibility permissions this patch adds a permission group as well.\n\nbug:8089372\n\nChange-Id: Ic125514c34f191aea0416a469e4b3481ab3200b9\n"
    },
    {
      "commit": "91488eed1745ea0426a73306f133e02d62580f1a",
      "tree": "3a7bc2fd2bc7d192c87c9740029ea3a8fd4d6a94",
      "parents": [
        "d0fd54648ca6249f56cf469c57181b5a7bbb71d0",
        "f7e50993edfbbe4bc84e60cea84d18b935d0ad0d"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 03:19:44 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 03:21:12 2013 +0000"
      },
      "message": "Merge changes Ie674e8b2,I0b9448c8\n\n* changes:\n  AccessibilityNodeINfo cache not cleared when accessibility is disabled.\n  Display magnifier does not release its surface on destroy.\n"
    },
    {
      "commit": "d0fd54648ca6249f56cf469c57181b5a7bbb71d0",
      "tree": "4c710f5a98e913d87290a312b89a46370847ed60",
      "parents": [
        "5924dc4d7a42d04011d2e67aa3f9e28b7d940681",
        "80943d8daa6ab31ab5c486d57aea406aa0730d58"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 03:16:40 2013 +0000"
      },
      "message": "Merge \"Adding UI test automation APIs.\""
    },
    {
      "commit": "4daf9b1ba5d898ac874197543dbd949360edcc45",
      "tree": "b1895be0b706874d0336b95229c5bd2f0f7a55f2",
      "parents": [
        "5988335aacdbea5b60b597fa2c52583bc655e30f",
        "78a9687fc2eab03b9d764cd27eaa1d56c66960be"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Tue Jan 29 02:33:27 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 02:33:44 2013 +0000"
      },
      "message": "Merge \"UsbDeviceManager: Don\u0027t start UsbDebuggingManager when data is encrypted\""
    },
    {
      "commit": "93f770b59fa1bd0f2a5c18fcfaffd2a1fc54f585",
      "tree": "e0f65902782d568b864500a672ab653149b77224",
      "parents": [
        "96bf00fe92d824b1da4619b875ed779ed283d11d",
        "0798149082a22ac16ee1d44ee88779716cb96784"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 28 20:35:47 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 28 20:36:59 2013 +0000"
      },
      "message": "Merge \"Fix bug where we could get stuck repeatedly launching an activity.\""
    },
    {
      "commit": "0798149082a22ac16ee1d44ee88779716cb96784",
      "tree": "d796ad5febcdd2475701c9dec79303f17b4ed436",
      "parents": [
        "b9781fe08c5b1afba086857aa18b46862550ae88"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 28 11:36:23 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 28 11:38:26 2013 -0800"
      },
      "message": "Fix bug where we could get stuck repeatedly launching an activity.\n\nA previous change to avoid losing activities if their process\nhappens to be gone at the point of launch (by counting that\nactivity as having its state saved) has resulted in a problem\nwhere an activity that crashes during launch will be repeatedly\nrelaunched.\n\nThis is fixed here by explicitly keeping track of our attempts\nto launch the activity since it was last able to save its state,\nand not keeping it around if it looks like the launch is\nrepeatedly failing.\n\nChange-Id: Icefd952443b7eb1222f233db95e0157fc3dd72d1\n"
    },
    {
      "commit": "de07d41f6396f9f040fed2b6780932d8e5dbb482",
      "tree": "9ffe4379de57a1630ca6d7043e860bfac30f27da",
      "parents": [
        "e6a6d83845d40526cab2d91d0c92b32d4267f5e1",
        "54ca7aef2e12b240caa6fb1a1e65abd234bea337"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Mon Jan 28 17:07:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 28 17:07:39 2013 +0000"
      },
      "message": "Merge \"Annotate Locations coming from mock providers\""
    },
    {
      "commit": "f1367b7e903a2a69a8f833bb272e91d77abd57c6",
      "tree": "dd09abe39190b51206928704efa2dcdd9b40ae70",
      "parents": [
        "526603b1d8404432256b03507187f50c6b21b31d"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Jan 25 17:20:12 2013 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Mon Jan 28 19:25:55 2013 +0900"
      },
      "message": "Do not turn on imes unexpectedly with unit tests\n\nBug: 7872918\n\nChange-Id: Ie1d74c9fac27de140e7aa85f2eaefcb89aa06ea7\n"
    },
    {
      "commit": "78a9687fc2eab03b9d764cd27eaa1d56c66960be",
      "tree": "e318b9bfa639e9fbf1ca0fa2893a22118f020a4c",
      "parents": [
        "b9781fe08c5b1afba086857aa18b46862550ae88"
      ],
      "author": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Fri Jan 25 16:58:13 2013 -0800"
      },
      "committer": {
        "name": "Benoit Goby",
        "email": "benoit@android.com",
        "time": "Fri Jan 25 16:58:13 2013 -0800"
      },
      "message": "UsbDeviceManager: Don\u0027t start UsbDebuggingManager when data is encrypted\n\nThis avoids showing the confirmation dialog from the decryption screen\n\nBug: 8019508\nChange-Id: I7ff364437f6b8aeea26fa8308aa4fe35b7ede5d7\n"
    },
    {
      "commit": "b9781fe08c5b1afba086857aa18b46862550ae88",
      "tree": "844f0c2260640afb4245acf91a11ed88aa85cb57",
      "parents": [
        "1c2df38242c29cd7f359a6fb13dc13b387264310",
        "5e45ee6752528791deb66b83d76250685de15d47"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 25 19:32:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 25 19:33:11 2013 +0000"
      },
      "message": "Merge \"App ops: you can now turn off operations.\""
    },
    {
      "commit": "5e45ee6752528791deb66b83d76250685de15d47",
      "tree": "d60220c4aa9feae8b5b3a45946b88f46865ab5ff",
      "parents": [
        "d8ba6cc9217e2e042106870e9d2e70cfd80426d6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 24 19:13:44 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 25 11:25:48 2013 -0800"
      },
      "message": "App ops: you can now turn off operations.\n\nAlso add new ops for calendar and wi-fi scans, finish\nimplementing rejection of content provider calls, fix\nissues with rejecting location calls, fix bug in the\nnew pm call to retrieve apps with permissions.\n\nChange-Id: I29d9f8600bfbbf6561abf6d491907e2bbf6af417\n"
    },
    {
      "commit": "377fc095e142b160b5093ed1d3717d0b18aff0f9",
      "tree": "1ca3e0cca27b21397b0b5b35ee8e2eb9cf88191a",
      "parents": [
        "de71ce1ab3cda6030b5838f4cadb4fe974d522c2",
        "7b5aeca50b3069b1f8bd4db0317a3829c4b540a2"
      ],
      "author": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Thu Jan 24 23:42:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 24 23:42:03 2013 +0000"
      },
      "message": "Merge \"Fix GpsLocationProvider.enable/disable/isEnabled\""
    },
    {
      "commit": "7b5aeca50b3069b1f8bd4db0317a3829c4b540a2",
      "tree": "dc55c2f8ef45200acdc09d75164a21c2f226e107",
      "parents": [
        "00dcbf8f58c36e3e8803336aa947a333411f43d0"
      ],
      "author": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Thu Jan 24 15:10:24 2013 -0800"
      },
      "committer": {
        "name": "Laurent Tu",
        "email": "laurentt@google.com",
        "time": "Thu Jan 24 15:26:02 2013 -0800"
      },
      "message": "Fix GpsLocationProvider.enable/disable/isEnabled\n\nFix the issue where GpsLocationProvider.isEnabled() returns true when it\nis really false (and the other way around), when the handler hasn\u0027t\nprocessed the enable/disable messages yet.\n\nThis can be systematically reproduced when the caller code is using the\nsame thread as the thread of the handler in GpsLocationProvider.\n\nFor example, this was happening in LocationManagerService.switchUser().\nIt would start by disabling all the providers (with\nupdateProviderListenersLocked()), then re-enable them in\nupdateProvidersLocked() only when isEnalbed()\u003d\u003dfalse, which was in the\nwrong state since the GpsLocationProvider.ENABLE message hadn\u0027t been\nprocessed yet. As a result, the GpsLocationProvider was disabled upon\nstartup of the phone.\n\nThis is a slight problem for the enable() contract, which specifies that\ngetStatus() must be handled, getStatus() will be handled but might have\nslighty not-up-to-date info in this case.\n\nBug: 8028017\n\nChange-Id: Iff91a11cc150e9029a6db85b64a10a926e12b0ba\n"
    },
    {
      "commit": "d8ba6cc9217e2e042106870e9d2e70cfd80426d6",
      "tree": "005a8e898ee1a6561ad80294ec0306fb4e23b830",
      "parents": [
        "51ff575d1bd0337a68ae173ee699ff8298ddb703",
        "f9c5e0fe837a3090820da502ecaabc5accc00ace"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 22:47:56 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 23 22:47:57 2013 +0000"
      },
      "message": "Merge \"Add new API to propagate contextual data to the assist action\""
    },
    {
      "commit": "51ff575d1bd0337a68ae173ee699ff8298ddb703",
      "tree": "0e423b22a15483c44dcc7800860c855d1cbc61b1",
      "parents": [
        "846dda3fa7a194b57acdb977e443c93c7cddcea1",
        "c4d27a7d55760d7897352906abe1e2c579283f5e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 22:45:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 23 22:46:01 2013 +0000"
      },
      "message": "Merge \"Fix issue #7649720: ANR occur when OTA with lower version...\""
    },
    {
      "commit": "846dda3fa7a194b57acdb977e443c93c7cddcea1",
      "tree": "d924a9451f3be63d2b8bd5012933b4fef4419f36",
      "parents": [
        "00dcbf8f58c36e3e8803336aa947a333411f43d0",
        "fd7adedebf88427162a3ce27fcc9cfd3893c869d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 22:43:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 23 22:43:11 2013 +0000"
      },
      "message": "Merge \"Add new disabled state for \"optional\" built-in apps.\""
    },
    {
      "commit": "f9c5e0fe837a3090820da502ecaabc5accc00ace",
      "tree": "bbc72079c958f69d9906f4a4ae803dd88fcf8083",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 23 14:39:13 2013 -0800"
      },
      "message": "Add new API to propagate contextual data to the assist action\n\nWhen launching an assist, we have a new API allowing the\ncurrent foreground activity/application to provide additional\narbitrary contextual information that is stuffed in the\nassist intent before it is launched.\n\nChange-Id: I0b2a6f5a266dc42cc0175327fa76774f814af3b4\n"
    },
    {
      "commit": "c4d27a7d55760d7897352906abe1e2c579283f5e",
      "tree": "ccdce74d424b7dbaa8efedb5ab3062758d2b7662",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 18:30:17 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 18:30:17 2013 -0800"
      },
      "message": "Fix issue #7649720: ANR occur when OTA with lower version...\n\n...of Play Store is included\n\nThe issue is that the name of the play store apk on the system\nimage has changed, and the package manager has a bug when this\nhappens and it is being hidden by an updated version of the\napplication that is still a newer version.  In this case it\ndoesn\u0027t do the normal scan of the system apk, but just leaves\nits old disabled state.  However if the code path has changed,\nthis will trip up other code that thinks the system apk has\ndisappeared (since when it checks for the existence of the apk\nwith the stored code path, it doesn\u0027t find anything).\n\nThe fix here is to add a special case to make sure the code\npath is updated even if we are otherwise ignoring the hidden\nsystem image package data.\n\nChange-Id: Ic5118f94c078da7a30b53b9cadf7c9844f7ba866\n"
    },
    {
      "commit": "cb9a61bdc40b9215e614ea26df6bb58e2de7d764",
      "tree": "bf1de5d6bd22a29d74fc5a997b6eaf2f5ec4c3f2",
      "parents": [
        "80943d8daa6ab31ab5c486d57aea406aa0730d58"
      ],
      "author": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 22 18:11:42 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 22 18:11:42 2013 -0800"
      },
      "message": "Display magnifier does not release its surface on destroy.\n\nChange-Id: I0b9448c8859b0167632652060b08072dc8c9c0a5\n"
    },
    {
      "commit": "80943d8daa6ab31ab5c486d57aea406aa0730d58",
      "tree": "cb7738eff465941484aac3eb6ba15ba365aea576",
      "parents": [
        "64cae1a608c196c2bd1d9e7cfd2a1632fd0e5b83"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Jan 02 10:25:37 2013 -0800"
      },
      "committer": {
        "name": "Svetoslav",
        "email": "svetoslavganov@google.com",
        "time": "Tue Jan 22 17:56:53 2013 -0800"
      },
      "message": "Adding UI test automation APIs.\n\nThis change adds APIs support for implementing UI tests. Such tests do\nnot rely on internal application structure and can span across application\nboundaries. UI automation APIs are encapsulated in the UiAutomation object\nthat is provided by an Instrumentation object. It is initialized by the\nsystem and can be used for both introspecting the screen and performing\ninteractions simulating a user. UI test are normal instrumentation tests\nand are executed on the device.\n\nUiAutomation uses the accessibility APIs to introspect the screen and\na special delegate object to perform privileged operations such as\ninjecting input events. Since instrumentation tests are invoked by a shell\ncommand, the shell program launching the tests creates a delegate object and\npasses it as an argument to started instrumentation. This delegate\nallows the APK that runs the tests to access some privileged operations\nprotected by a signature level permissions which are explicitly granted\nto the shell user.\n\nThe UiAutomation object also supports running tests in the legacy way\nwhere the tests are run as a Java shell program. This enables existing\nUiAutomator tests to keep working while the new ones should be implemented\nusing the new APIs. The UiAutomation object exposes lower level APIs which\nallow simulation of arbitrary user interactions and writing complete UI test\ncases. Clients, such as UiAutomator, are encouraged to implement higher-\nlevel APIs which minimize development effort and can be used as a helper\nlibrary by the test developer.\n\nThe benefit of this change is decoupling UiAutomator from the system\nsince the former was calling hidden APIs which required that it is\nbundled in the system image. This prevented UiAutomator from being\nevolved separately from the system. Also UiAutomator was creating\nadditional API surface in the system image. Another benefit of the new\ndesign is that now test cases have access to a context and can use\npublic platform APIs in addition to the UiAutomator ones. Further,\nthird-parties can develop their own higher level test APIs on top\nof the lower level ones exposes by UiAutomation.\n\nbug:8028258\n\nAlso this change adds the fully qualified resource name of the view\u0027s\nid in the emitted AccessibilityNodeInfo if a special flag is set while\nconfiguring the accessibility service. Also added is API for looking\nup node infos by this id. The id resource name is relatively more stable\ncompared to the generaed id number which may change from one build to\nanother. This API facilitate reuing the already defined ids for UI\nautomation.\n\nbug:7678973\n\nChange-Id: I589ad14790320dec8a33095953926c2a2dd0228b\n"
    },
    {
      "commit": "fd7adedebf88427162a3ce27fcc9cfd3893c869d",
      "tree": "d9dfb04e5d0972a6ae7bf92431b0d48925e97b48",
      "parents": [
        "cc7433470f00fac3bbe7835de3ded4b9bf121244"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 17:10:23 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 22 17:10:23 2013 -0800"
      },
      "message": "Add new disabled state for \"optional\" built-in apps.\n\nThe disabled state allows you to make an app disabled\nexcept for whatever parts of the system still want to\nprovide access to them and automatically enable them\nif the user want to use it.\n\nCurrently the input method manager service is the only\npart of the system that supports this, so you can put\nan IME in this state and it will generally look disabled\nbut still be available in the IME list and once selected\nswitched to the enabled state.\n\nChange-Id: I77f01c70610d82ce9070d4aabbadec8ae2cff2a3\n"
    },
    {
      "commit": "172175fea9f2c1d2967b53944e33b2f03c021875",
      "tree": "1ee1629d2cb30eb2d54058b0c06c8cee48651bf5",
      "parents": [
        "806f133e418e65ad321950877ab9e9133b6a4a69",
        "05f1f0ece8f39e77c96825fb2e3451ebd388adad"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jan 22 15:51:14 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 22 15:51:14 2013 -0800"
      },
      "message": "am 05f1f0ec: am 555b07df: am 2c64b539: am 596532d9: Properly initialize recognition service if the recognizer component changed.\n\n* commit \u002705f1f0ece8f39e77c96825fb2e3451ebd388adad\u0027:\n  Properly initialize recognition service if the recognizer component changed.\n"
    },
    {
      "commit": "05f1f0ece8f39e77c96825fb2e3451ebd388adad",
      "tree": "4860647575300552158bbe03aa71976489824337",
      "parents": [
        "58fb00025daa78360a3d033b223d15364d49086f",
        "555b07df08dd4c2472374d0767926ebab928dede"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jan 22 15:48:10 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 22 15:48:10 2013 -0800"
      },
      "message": "am 555b07df: am 2c64b539: am 596532d9: Properly initialize recognition service if the recognizer component changed.\n\n* commit \u0027555b07df08dd4c2472374d0767926ebab928dede\u0027:\n  Properly initialize recognition service if the recognizer component changed.\n"
    },
    {
      "commit": "555b07df08dd4c2472374d0767926ebab928dede",
      "tree": "22b12944168677bcd43dc810bc18455d08abb395",
      "parents": [
        "fe88f1be3d197987a874f6c29fefdeb11db183f6",
        "2c64b53976a99f28bc7c0612648581f9b93bf8b0"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jan 22 15:46:25 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 22 15:46:25 2013 -0800"
      },
      "message": "am 2c64b539: am 596532d9: Properly initialize recognition service if the recognizer component changed.\n\n* commit \u00272c64b53976a99f28bc7c0612648581f9b93bf8b0\u0027:\n  Properly initialize recognition service if the recognizer component changed.\n"
    },
    {
      "commit": "2c64b53976a99f28bc7c0612648581f9b93bf8b0",
      "tree": "60dcf119d719633677055cf8004d5b03e7ca39c6",
      "parents": [
        "3599f0a02129c238177806ce3d6db20853230d4d",
        "596532d9dbea3460dbc989b0316c721ca69f4915"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jan 22 15:43:53 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 22 15:43:53 2013 -0800"
      },
      "message": "am 596532d9: Properly initialize recognition service if the recognizer component changed.\n\n* commit \u0027596532d9dbea3460dbc989b0316c721ca69f4915\u0027:\n  Properly initialize recognition service if the recognizer component changed.\n"
    },
    {
      "commit": "596532d9dbea3460dbc989b0316c721ca69f4915",
      "tree": "6d55cb09d7ab6342ab3e001cdabd2f9c613da324",
      "parents": [
        "0cf97d32178b689184866e731c0a4105d8223d80"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jan 18 11:04:09 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Jan 22 15:35:49 2013 -0800"
      },
      "message": "Properly initialize recognition service if the recognizer component changed.\n\nThe getServiceInfo() call directly to IPackageManager does not throw an exception.\nThe return value needed to be checked for null.\n\nBug: 8031032\nChange-Id: I701b9e8cf3b2406a3b35a486183330489b3d46f5\n"
    },
    {
      "commit": "54ca7aef2e12b240caa6fb1a1e65abd234bea337",
      "tree": "162f4680a75081bbfe363a6c48a3d97367d4bd43",
      "parents": [
        "f25febf01453733e8bdd1ac241ecd9d3bcbef475"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 08 09:39:50 2013 -0800"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 22 09:39:47 2013 -0800"
      },
      "message": "Annotate Locations coming from mock providers\n\nLocationManagerService now annotates incoming Location objects that\nhave come from mock location providers. The new isFromMockProvider()\nmethod can be called on any Location to determine whether the\nprovider that supplied the Location was a mock location provider.\n\nBug: 6813235\nChange-Id: Ib5140e93ea427f2e0b0036151047f87a02b4d23a\n"
    },
    {
      "commit": "72e3983d38f656cfa8c7a038eb80bdd9ea06768e",
      "tree": "6bde32531354a8b09058b60bc702a9ec3c6f6b6b",
      "parents": [
        "e95724aebec3a4a121fde3dfba761b80d2cd6922"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 18 18:36:09 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 18 18:36:09 2013 -0800"
      },
      "message": "New API to get app op information about a single package.\n\nChange-Id: I986453d9bb4161da467fb820b12502464e936483\n"
    },
    {
      "commit": "20da885caa27ee8148c61be0ff56451ad6bf8146",
      "tree": "a504a38829026af0c0f0b467589a338f4615df36",
      "parents": [
        "8fea4e72e4dcff9fa76168b9e26cf5907102f70b",
        "63837f455d08605173985042a89d5f9ba06883d1"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Sat Jan 19 00:35:48 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 19 00:36:12 2013 +0000"
      },
      "message": "Merge \"Revert \"Second pass tying into dns cache per interface\"\""
    },
    {
      "commit": "63837f455d08605173985042a89d5f9ba06883d1",
      "tree": "255916695ca7d523020f5c70961ccddb5174c0b3",
      "parents": [
        "f60f94a89e49c125f4aff6496710a0fb66579545"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Sat Jan 19 00:34:07 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 19 00:34:07 2013 +0000"
      },
      "message": "Revert \"Second pass tying into dns cache per interface\"\n\nThis reverts commit f60f94a89e49c125f4aff6496710a0fb66579545\n\nChange-Id: If52dffd5100a6b03275da0eabfa05e24c5ecada9\n"
    },
    {
      "commit": "d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaac",
      "tree": "5f6d8b2c0e66c99289ae085cb6a6a3be168eb000",
      "parents": [
        "f25febf01453733e8bdd1ac241ecd9d3bcbef475"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 17 17:47:37 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 18 13:02:26 2013 -0800"
      },
      "message": "Rework ParceledListSlice to be much easier to use.\n\nTake advantage of this to return better information about\npackages filtered by permissions -- include the permissions\nthey have in the requested array.\n\nAlso fix issue #8026793 (Contact picture shows default pic\nwhile searching for a contact in qsb) by using the base\npackage name of the Context when reporting the app name\nof an operation.  Otherwise you could make a resource-only\ncontext for another application and do calls through that\nand get reported as the wrong app.\n\nChange-Id: I5e0488bf773acea5a3d22f245641828e1a106fb8\n"
    },
    {
      "commit": "52dda54b081f3a3fb1cc475128eec820e3d5b21e",
      "tree": "a59f079c0d412438594edf60e5ca4c7e2acf9d9a",
      "parents": [
        "3e7959ab4d5215002a96e1a43c232d2d8885bf62",
        "82413d0b2acad73b9a008e0c53392a54f9555cf8"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Jan 18 18:41:39 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 18 18:41:39 2013 +0000"
      },
      "message": "Merge \"Clean up published network condition reporting.\""
    },
    {
      "commit": "82413d0b2acad73b9a008e0c53392a54f9555cf8",
      "tree": "8d07c530baf43f02043459bb1a77d1df9acf7a90",
      "parents": [
        "0f8d155363c361199a9d9aa5dcdbc4088990f893"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Jan 18 09:31:13 2013 -0800"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Fri Jan 18 09:31:13 2013 -0800"
      },
      "message": "Clean up published network condition reporting.\n\nChange-Id: I371c04bcb0547f1133e7ce12a6871aad3b3fdc6b\n"
    },
    {
      "commit": "2d43bf6ba587e1754828b72371832eb89cbdf13b",
      "tree": "a3e09587678e9916637848da864b803b6bfcaf58",
      "parents": [
        "5a0252da779a98b98c0ef5053c2d20b7bd66de34",
        "04dd24d4baf7f78e7b47c9f91e82dfb44fd48190"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Jan 18 07:03:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 18 07:03:32 2013 +0000"
      },
      "message": "Merge \"Ensure that the input method dialog is dismissed when changing the hardware keyboard state.\""
    },
    {
      "commit": "04dd24d4baf7f78e7b47c9f91e82dfb44fd48190",
      "tree": "d11f738de5c4827820806056fe317634310df887",
      "parents": [
        "b6cf3c02de06dfe2358009e3811055fdef7e10b0"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Jan 18 13:44:37 2013 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Jan 18 13:44:57 2013 +0900"
      },
      "message": "Ensure that the input method dialog is dismissed when changing the hardware keyboard state.\n\nChange-Id: I51882ecd2b1a12116f43afff7c23454164a6272b\n"
    },
    {
      "commit": "0f8d155363c361199a9d9aa5dcdbc4088990f893",
      "tree": "93547179c8847f8d16fe051b2deae8f462327903",
      "parents": [
        "6d191ed99491f209168e88f3d570e89c6836285b",
        "f60f94a89e49c125f4aff6496710a0fb66579545"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Thu Jan 17 16:15:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 17 16:15:33 2013 +0000"
      },
      "message": "Merge \"Second pass tying into dns cache per interface\""
    },
    {
      "commit": "2125dd57cc3c1c43da9793a2ee4bb8a7bf19f083",
      "tree": "fbe39f761d3b18199de133332bbabdaacc766f49",
      "parents": [
        "b2efa40bc37bc83410ef38652f708ea7ef6ab845",
        "e799175b6ba3aadd972f4b861758d675d1f93987"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 17 02:51:09 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 17 02:51:11 2013 +0000"
      },
      "message": "Merge \"AppOps: fix nested op tracking, new API to get apps using permissions.\""
    },
    {
      "commit": "e799175b6ba3aadd972f4b861758d675d1f93987",
      "tree": "2468fd79769eecff660a7c2d2163fb8ae0a11fca",
      "parents": [
        "35654b61e8fe7bc85afcb076ddbb590d51c5865f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 16 17:56:46 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 16 18:10:40 2013 -0800"
      },
      "message": "AppOps: fix nested op tracking, new API to get apps using\npermissions.\n\nChange-Id: I20c7bd58febc01d6911a90440867eaacd133c464\n"
    },
    {
      "commit": "79d59f0968ffcb803f615527d52718322af0f89b",
      "tree": "c854d9fad38475ac2a8b48be9dfd74a13cdac321",
      "parents": [
        "4a0f95cffbb9925e95c216aea41f3450885d4061"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jan 16 12:51:04 2013 -0800"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jan 16 17:37:21 2013 -0800"
      },
      "message": "DO NOT MERGE Prevent OOM death for services under ServiceWatcher\u0027s care.\n\nChange-Id: If87be5769b55368edaf4776189e8f6e51a21eb03\n\nConflicts:\n\n\tservices/java/com/android/server/ServiceWatcher.java\n"
    },
    {
      "commit": "fd08d1ece50e9dd0a3dff690911bd3df3c089978",
      "tree": "34a77ba789d3a66d6574dd2b1560dc89b7506e84",
      "parents": [
        "5ebefec5bdb99a646e338997617d46e3ae0162ed"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jan 16 12:51:04 2013 -0800"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Wed Jan 16 16:21:41 2013 -0800"
      },
      "message": "Prevent OOM death for services under ServiceWatcher\u0027s care.\n\nChange-Id: If87be5769b55368edaf4776189e8f6e51a21eb03\n"
    },
    {
      "commit": "d4fe37bee7c7433f32c23cee100c6e05ba0f3b2b",
      "tree": "76ea7e540dfa63062ae6fa6e4920dccb40c0aa14",
      "parents": [
        "d05efe727b61e321a6c2720166988d52629c050c",
        "27b89e6658a0d233a53f5d7ca20dc57fec82d955"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 16 23:26:30 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 16 23:26:30 2013 +0000"
      },
      "message": "Merge \"Rename bindService to bindServiceAsUser to follow convention.\""
    },
    {
      "commit": "27b89e6658a0d233a53f5d7ca20dc57fec82d955",
      "tree": "3bc24a15905546e7ea38fb37994d67414349b3db",
      "parents": [
        "57b59e025bc10056daf42cd741b626843ff344f5"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 16 12:30:11 2013 -0800"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jan 16 12:30:11 2013 -0800"
      },
      "message": "Rename bindService to bindServiceAsUser to follow convention.\n\nThis is for the multi-user version of bindService, not the original.\n\nChange-Id: Ib2de35941196accf387b1a276a77e6f9af805ec0\n"
    },
    {
      "commit": "35654b61e8fe7bc85afcb076ddbb590d51c5865f",
      "tree": "0f42a90b4deaa0156d84df5d79b78cd6f2ac8807",
      "parents": [
        "8a8b047f2d28f6b2d728731a7e71eeaf16f89700"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 14 17:38:02 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 16 12:11:01 2013 -0800"
      },
      "message": "More work on App Ops service.\n\nImplemented reading and writing state to retain information\nacross boots, API to retrieve state from it, improved location\nmanager interaction to monitor both coarse and fine access\nand only note operations when location data is being delivered\nback to app (not when it is just registering to get the data at\nsome time in the future).\n\nAlso implement tracking of read/write ops on contacts and the\ncall log.  This involved tweaking the content provider protocol\nto pass over the name of the calling package, and some\ninfrastructure in the ContentProvider transport to note incoming\ncalls with the app ops service.  The contacts provider and call\nlog provider turn this on for themselves.\n\nThis also implements some of the mechanics of being able to ignore\nincoming provider calls...  all that is left are some new APIs for\nthe real content provider implementation to be involved with\nproviding the correct behavior for query() (return an empty\ncursor with the right columns) and insert() (need to figure out\nwhat URI to return).\n\nChange-Id: I36ebbcd63dee58264a480f3d3786891ca7cbdb4c\n"
    },
    {
      "commit": "f849124b6bc769bdaf98909279124ff9716c9107",
      "tree": "72a3d57ffe326ac7943a786313ac7364705d9b2c",
      "parents": [
        "278afa73b21023856aa5b39436138abe1b1271bf",
        "ca6486e7f579fa885b6213513f26ce2ca49f873b"
      ],
      "author": {
        "name": "Sasha Levitskiy",
        "email": "sanek@google.com",
        "time": "Tue Jan 15 16:55:41 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 16:56:30 2013 -0800"
      },
      "message": "Merge \"Removed Throttle Manager as obsolete\""
    },
    {
      "commit": "ea78b85bb7b688a513fcf456f0e1aeee11e106ea",
      "tree": "a76f630e795b99dc3a448c35a8e01814ee2381ea",
      "parents": [
        "8217635056efa9fb285bd4a0eb26a1789c5cd557"
      ],
      "author": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 15 10:39:28 2013 -0800"
      },
      "committer": {
        "name": "Victoria Lease",
        "email": "violets@google.com",
        "time": "Tue Jan 15 10:39:28 2013 -0800"
      },
      "message": "fix NPE in updateClientUids\n\nBug: 8009908\nChange-Id: I54d97c587a3fa9d003f654f98fdfdbe21af791d6\n"
    },
    {
      "commit": "07f943d4176fac15995985db2ac562f11fd7ffef",
      "tree": "3cc1a4515b3597d741c4fafff90f3dc46d17992f",
      "parents": [
        "92325abb2c07e8499d88b92cf262955aba6f1e54",
        "6cfa7292cffac750d344c0cad8085ccd533b5215"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 15 09:10:10 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 15 09:10:10 2013 -0800"
      },
      "message": "Merge \"Add Overrides, remove trailing whitespace.\""
    },
    {
      "commit": "6cfa7292cffac750d344c0cad8085ccd533b5215",
      "tree": "8919e6597acdf37225f305854f44f3ca39c82393",
      "parents": [
        "9003007d35c6ae1cdeac4ca831a036292b7089e9"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 15 09:05:42 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 15 09:05:42 2013 -0800"
      },
      "message": "Add Overrides, remove trailing whitespace.\n\nOnce and for all.\n\nChange-Id: I0835515696c1a8ec7dff719fb734cbbd0b4252d6\n"
    },
    {
      "commit": "8e303cc5dd4860b6050d5725ce60ca7e6fb00c7b",
      "tree": "8d28ba2ffea81e5321fe5a8f6fe97a30796f845d",
      "parents": [
        "0152360d8b419ddd0fd5b1d701932f96d5839276"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Jan 11 15:55:28 2013 +0900"
      },
      "committer": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Tue Jan 15 12:52:47 2013 +0900"
      },
      "message": "Refactor utilities for InputMethodManagerSerivce that we want to share with the Settings application\n\nBug: 7872918\n\nChange-Id: I0bc9954f163a3ec38d08b9ba842a8a31176eb6a6\n"
    },
    {
      "commit": "ca6486e7f579fa885b6213513f26ce2ca49f873b",
      "tree": "2bd8579677f10c991538b1dd3ab9dea656b1dff2",
      "parents": [
        "707a71e39e8e3bf284422265b680b73a7c63debf"
      ],
      "author": {
        "name": "Sasha Levitskiy",
        "email": "sanek@google.com",
        "time": "Mon Jan 14 16:59:33 2013 -0800"
      },
      "committer": {
        "name": "Sasha Levitskiy",
        "email": "sanek@google.com",
        "time": "Mon Jan 14 16:59:33 2013 -0800"
      },
      "message": "Removed Throttle Manager as obsolete\n\nChange-Id: I63e8514f34c880d0badaab33a347f54a80c84da6\n"
    },
    {
      "commit": "0d31c74b2eff3ce37133a2fe9fb57db7d4d84a91",
      "tree": "e46e79af181a43496c06b4cbbc013f7bb3777afb",
      "parents": [
        "d8c7527297798a341f60a8a943162d9189972fd5",
        "002a54e2291eeb3a3fd0b6b3f9dbc96a7c805062"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jan 14 10:38:14 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 14 10:38:14 2013 -0800"
      },
      "message": "Merge \"WorkSource can now track package names.\""
    },
    {
      "commit": "002a54e2291eeb3a3fd0b6b3f9dbc96a7c805062",
      "tree": "03e3db9e65e24f904a5c138306a9221f9a8547b7",
      "parents": [
        "0bdb1e35ec09a2558fcdb2be51c032fb3c4bbc58"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jan 10 17:34:55 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 11 17:37:04 2013 -0800"
      },
      "message": "WorkSource can now track package names.\n\nUse this to track the package name of applications\naccessing GPS.\n\nAnd now the app ops service can enforce that callers\nmust provide valid package names.\n\nChange-Id: I842a0abe236ea85f77926d708547f0f95c24bd49\n"
    },
    {
      "commit": "5ae8e45ff390d660c5694f27e2df14cf7b8fb81d",
      "tree": "cfda436cb88219cc38f5b03d0161353ea0d45b8e",
      "parents": [
        "919129832daa12f44295bb2751dcc1ef08203413",
        "13131e74ea93d82c004ab1567351eadcedd799a5"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jan 11 16:41:26 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 11 16:41:40 2013 -0800"
      },
      "message": "Merge \"Make DimLayer track changes to WindowState layer.\""
    },
    {
      "commit": "f60f94a89e49c125f4aff6496710a0fb66579545",
      "tree": "2ee2ab3c947e502e2c75a1451ef0c268894b0925",
      "parents": [
        "a268ba51f77527585363e48aec1be45b9ec97061"
      ],
      "author": {
        "name": "Mattias Falk",
        "email": "mattias.falk@sonyericsson.com",
        "time": "Tue Aug 23 14:15:13 2011 +0200"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "rgreenwalt@google.com",
        "time": "Fri Jan 11 15:47:08 2013 -0800"
      },
      "message": "Second pass tying into dns cache per interface\n\nSet dns servers for secondary nets and attach the\nprocesses (pids) that are using the secondary nets\nto the secondary nets associated dns cache.\n\nChange-Id: Id865c2c3fdc0ec1c3e30c134e9ea4109f4f2fbeb\nbug:5465296\n"
    },
    {
      "commit": "13131e74ea93d82c004ab1567351eadcedd799a5",
      "tree": "895ce85d1e64f3e02d2c26a5d36d005258be1d54",
      "parents": [
        "14e066df1ca863667c6c6d745ad61bb07ac5082c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jan 11 11:03:33 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Jan 11 11:03:33 2013 -0800"
      },
      "message": "Make DimLayer track changes to WindowState layer.\n\nThe DimLayer behind popups was not changing when the popup layer\nchanged. It will now.\n\nFixes bug 7974415.\n\nChange-Id: Ia486efa83d623716a09d73a22493a4222823c573\n"
    },
    {
      "commit": "3fef446a149408378a4cb93a4773bec778f6161d",
      "tree": "0d109b8c3d5687c8c9d9ad4f7483e668550cd3cf",
      "parents": [
        "9062fd8d554fe609ad6096791e5d69ceab9878fb",
        "ec64c30bfc221fea888efe5eac62f7c5303aeeb0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Fri Jan 11 10:54:46 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 11 10:54:46 2013 -0800"
      },
      "message": "am ec64c30b: am cc52272b: am a3e79199: Merge \"TIME_TICK was not occurred for one hour\"\n\n* commit \u0027ec64c30bfc221fea888efe5eac62f7c5303aeeb0\u0027:\n  TIME_TICK was not occurred for one hour\n"
    },
    {
      "commit": "9062fd8d554fe609ad6096791e5d69ceab9878fb",
      "tree": "bc8536c4e401455bf286482389147e140e0c966f",
      "parents": [
        "b70d9df780b50f2aab2ff006e5cbfbd1a43ba332",
        "50fc82fdf025bc1fee8f0eb50fa88e4591c8daae"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Fri Jan 11 10:54:31 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 11 10:54:31 2013 -0800"
      },
      "message": "am 50fc82fd: am 30b074fc: am 2495d08a: am 5327322a: Merge \"Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\" into jb-mr1.1-dev\n\n* commit \u002750fc82fdf025bc1fee8f0eb50fa88e4591c8daae\u0027:\n  Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\n"
    },
    {
      "commit": "b70d9df780b50f2aab2ff006e5cbfbd1a43ba332",
      "tree": "89ab898ac8ccc2be4887f8f939050bae5b7c6799",
      "parents": [
        "1d6a7bd97340eab85920b37c3c83ee66fbebfed1",
        "1ec3c2ccedde5cd8ff6e94c9b1566a913d5e8db0"
      ],
      "author": {
        "name": "Sascha Prueter",
        "email": "saschap@google.com",
        "time": "Fri Jan 11 10:53:49 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 11 10:53:49 2013 -0800"
      },
      "message": "am 1ec3c2cc: am 28608bbb: am d692ea6d: am b5e4835e: Merge \"Improve heuristics for detecting wireless chargers.\" into jb-mr1.1-dev\n\n* commit \u00271ec3c2ccedde5cd8ff6e94c9b1566a913d5e8db0\u0027:\n  Improve heuristics for detecting wireless chargers.\n"
    },
    {
      "commit": "885bfcd523bb7f237b007f5ad1bdc6b123a034f5",
      "tree": "b9a6128054928f635235db97d534324311d4b4f3",
      "parents": [
        "c19b54975214a12225a1669ae18b0005a1357189",
        "9e6575bc52f421484fe262aff224db247e70d830"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jan 11 10:53:19 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 11 10:53:19 2013 -0800"
      },
      "message": "am 9e6575bc: am 854458f4: am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n\n* commit \u00279e6575bc52f421484fe262aff224db247e70d830\u0027:\n  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n"
    },
    {
      "commit": "ec64c30bfc221fea888efe5eac62f7c5303aeeb0",
      "tree": "eac88a968afad3b501171844ea7f52d06cd420a8",
      "parents": [
        "50fc82fdf025bc1fee8f0eb50fa88e4591c8daae",
        "cc52272b4fa27ab36ba20e22a53f872fedc8bb45"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Fri Jan 11 08:58:34 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 11 08:58:34 2013 -0800"
      },
      "message": "am cc52272b: am a3e79199: Merge \"TIME_TICK was not occurred for one hour\"\n\n* commit \u0027cc52272b4fa27ab36ba20e22a53f872fedc8bb45\u0027:\n  TIME_TICK was not occurred for one hour\n"
    },
    {
      "commit": "cc52272b4fa27ab36ba20e22a53f872fedc8bb45",
      "tree": "53bb1eb46b2f10bba72a63e6a2a6870897e11acf",
      "parents": [
        "c02bbfb3ea64ec9f4f3e6eff796b0bfe571bda9b",
        "a3e7919932199e2178792cbae8870e9b48c57523"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@android.com",
        "time": "Thu Jan 10 18:26:50 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 10 18:26:50 2013 -0800"
      },
      "message": "am a3e79199: Merge \"TIME_TICK was not occurred for one hour\"\n\n* commit \u0027a3e7919932199e2178792cbae8870e9b48c57523\u0027:\n  TIME_TICK was not occurred for one hour\n"
    },
    {
      "commit": "50fc82fdf025bc1fee8f0eb50fa88e4591c8daae",
      "tree": "0162da5f2bed5ebe9501fb3c983b5b97845c289a",
      "parents": [
        "1ec3c2ccedde5cd8ff6e94c9b1566a913d5e8db0",
        "30b074fcbff6263db4044ff4e8f36eb5d4e136eb"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Thu Jan 10 18:20:56 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 10 18:20:56 2013 -0800"
      },
      "message": "am 30b074fc: am 2495d08a: am 5327322a: Merge \"Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\" into jb-mr1.1-dev\n\n* commit \u002730b074fcbff6263db4044ff4e8f36eb5d4e136eb\u0027:\n  Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\n"
    },
    {
      "commit": "30b074fcbff6263db4044ff4e8f36eb5d4e136eb",
      "tree": "b799f359cb4a5e9df71c527338124baed90eb3ac",
      "parents": [
        "28608bbb2fb6daf3d261cb10eaeb1849781cf77d",
        "2495d08a5c06556deb7c3993add337037b8b492e"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Thu Jan 10 18:17:35 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 10 18:17:35 2013 -0800"
      },
      "message": "am 2495d08a: am 5327322a: Merge \"Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\" into jb-mr1.1-dev\n\n* commit \u00272495d08a5c06556deb7c3993add337037b8b492e\u0027:\n  Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\n"
    },
    {
      "commit": "5327322ab94711a654d41a5b53be3bf6a3a28a39",
      "tree": "0403bc5fd4a5aae3e63cfa3c83aef57fcb738a6c",
      "parents": [
        "b5e4835e3a4ff37693891a59841fcefa5c3aa648",
        "9d08143fa72ad87572a7d5c714f379262a73e1b2"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Thu Jan 10 18:12:43 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 10 18:12:44 2013 -0800"
      },
      "message": "Merge \"Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\" into jb-mr1.1-dev"
    },
    {
      "commit": "b5eb550fb10ad7c54be489a89a08fc3fb10fbe53",
      "tree": "829796e0a1ed36a1b1ddfc1702027fc02e9e67f9",
      "parents": [
        "14e066df1ca863667c6c6d745ad61bb07ac5082c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jan 10 17:29:30 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jan 10 17:29:30 2013 -0800"
      },
      "message": "Call assignLayersLocked when InputMethod is moved.\n\nCall was removed by over-ambitious editing in CL 259410.\n\nFixes bug 7966824.\n\nChange-Id: I9feb2ec27907f4e03b9424710adc2743a8b512d8\n"
    },
    {
      "commit": "1ec3c2ccedde5cd8ff6e94c9b1566a913d5e8db0",
      "tree": "e340a68a93aa001852653fe5c0bbbfbe08c9c978",
      "parents": [
        "c8eb3b41d5ade3d0900d617d518a7b7b673a01ad",
        "28608bbb2fb6daf3d261cb10eaeb1849781cf77d"
      ],
      "author": {
        "name": "Sascha Prueter",
        "email": "saschap@google.com",
        "time": "Thu Jan 10 11:19:20 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 10 11:19:20 2013 -0800"
      },
      "message": "am 28608bbb: am d692ea6d: am b5e4835e: Merge \"Improve heuristics for detecting wireless chargers.\" into jb-mr1.1-dev\n\n* commit \u002728608bbb2fb6daf3d261cb10eaeb1849781cf77d\u0027:\n  Improve heuristics for detecting wireless chargers.\n"
    },
    {
      "commit": "28608bbb2fb6daf3d261cb10eaeb1849781cf77d",
      "tree": "f82f206abe911953e78c517f659e13f4ff7e79fe",
      "parents": [
        "d6ddb51b3d4ec1bb2e6305823681cdeb05c0ea7b",
        "d692ea6dd297fbd39885525a29bdf6637a3640f2"
      ],
      "author": {
        "name": "Sascha Prueter",
        "email": "saschap@google.com",
        "time": "Thu Jan 10 11:16:51 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 10 11:16:51 2013 -0800"
      },
      "message": "am d692ea6d: am b5e4835e: Merge \"Improve heuristics for detecting wireless chargers.\" into jb-mr1.1-dev\n\n* commit \u0027d692ea6dd297fbd39885525a29bdf6637a3640f2\u0027:\n  Improve heuristics for detecting wireless chargers.\n"
    },
    {
      "commit": "b5e4835e3a4ff37693891a59841fcefa5c3aa648",
      "tree": "7a99f8329bb42ec98dbd7ce10547859699e69251",
      "parents": [
        "ec7ffa145572eae2566cb1c763bcf50d8d1e8d6b",
        "3b971598ed28d45c176e3f9b076fc743a406296d"
      ],
      "author": {
        "name": "Sascha Prueter",
        "email": "saschap@google.com",
        "time": "Thu Jan 10 11:11:20 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 10 11:11:20 2013 -0800"
      },
      "message": "Merge \"Improve heuristics for detecting wireless chargers.\" into jb-mr1.1-dev"
    },
    {
      "commit": "3b971598ed28d45c176e3f9b076fc743a406296d",
      "tree": "bf1911234e5906757f80496b754a27a6e08eb748",
      "parents": [
        "93a4ab2fa2efd8908c30298796af710c1ec0f85f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jan 09 18:46:37 2013 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Jan 10 10:01:56 2013 -0800"
      },
      "message": "Improve heuristics for detecting wireless chargers.\n\nOn some devices, we need to apply heuristics to determine whether\nthe device is docked on a wireless charger because the charging\ncircuits do not provide sufficient information to know whether\nthe device is on the charger unless it is actually receiving\npower.\n\nThe previous heuristics only considered the battery level to\nsuppress spurious dock signals.\n\nThe new heuristics also take into account whether the device\nappears to have moved from its previous position on the dock.\n\nBug: 7744185\nChange-Id: I5ba885dac25b37840b6db46b8a0f30968a06776c\n"
    },
    {
      "commit": "9d08143fa72ad87572a7d5c714f379262a73e1b2",
      "tree": "d0260cf6c539e7e905d8586b0f386c57e3d90375",
      "parents": [
        "481102eed6d8eaff07489717bde7fc59a5dea5bf"
      ],
      "author": {
        "name": "Satoshi Kataoka",
        "email": "satok@google.com",
        "time": "Wed Jan 09 23:44:28 2013 -0800"
      },
      "committer": {
        "name": "satok",
        "email": "satok@google.com",
        "time": "Thu Jan 10 17:42:56 2013 +0900"
      },
      "message": "Revert \"Fix a bug where disabled auxilialy IME is unexpectedly re-enabled\"\n\nThis reverts commit 32b812054cce27d1c70b53ba8ac729c7186b105e\n\nBug: 7976890\n\nChange-Id: I75ab60734153719b199cf7281d23f5eb1ad2d1bc\n"
    },
    {
      "commit": "563914a9a1b0a8b897e5d912370cf03b07c0eaf8",
      "tree": "bf01250e0448b3172f9ac1f21b30471a8b7afece",
      "parents": [
        "9fae2ecc5fb777230bde74e4a099fb4e98bf34b4"
      ],
      "author": {
        "name": "Sungmin Choi",
        "email": "sungmin.choi@lge.com",
        "time": "Thu Jan 10 17:28:40 2013 +0900"
      },
      "committer": {
        "name": "Sungmin Choi",
        "email": "sungmin.choi@lge.com",
        "time": "Thu Jan 10 17:33:26 2013 +0900"
      },
      "message": "TIME_TICK was not occurred for one hour\n\nTIME_TICK was not occurred at the end of DST for one hour\n\nStep to reproduce:\n1. Settings -\u003e Date \u0026 time\n2. uncheck Automatic date \u0026 time and Automatic time zone\n3. select Time zone -\u003e select Brussels\n4. set date -\u003e Oct. 28. 2012\n5. set time -\u003e 1:59 AM\n\nBug: 7922117\nChange-Id: I2e78bd97b508d6a38471425cfbaca45fb4b89c1e\n"
    },
    {
      "commit": "9e6575bc52f421484fe262aff224db247e70d830",
      "tree": "71536052f31d3020f54557ca794cc3c55455889c",
      "parents": [
        "79cc4a2ab0130acca83de5945a43adf9925beac1",
        "854458f4d52937f9a1385559d759bd8019eb3294"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 19:01:26 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 09 19:01:26 2013 -0800"
      },
      "message": "am 854458f4: am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n\n* commit \u0027854458f4d52937f9a1385559d759bd8019eb3294\u0027:\n  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n"
    },
    {
      "commit": "854458f4d52937f9a1385559d759bd8019eb3294",
      "tree": "c221ae1f7f3fe87b64b8dfc3bb397f1a71cc5de8",
      "parents": [
        "d17792073fd3ab963bd5e0a7edcb312720fcea26",
        "0287ca3ca36ad98004ddabfa189105e6324a820e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 19:00:06 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 09 19:00:06 2013 -0800"
      },
      "message": "am 0287ca3c: am e62fa825: Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n\n* commit \u00270287ca3ca36ad98004ddabfa189105e6324a820e\u0027:\n  Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n"
    },
    {
      "commit": "e62fa825794967c2067be86e8b57b83f4b82ee1c",
      "tree": "e61d6cd3995b98d28fb26c24becd34a267176f85",
      "parents": [
        "d29f2d263af9a3017799d3098ed208a49c5ecc69"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 18:31:37 2013 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 18:51:51 2013 -0800"
      },
      "message": "Merge from master: fix issue #7966357: Super lights out mode vs. volume dialog\n\nThe volume panel now forces us out of the UI modes while it\nis up.\n\nChange-Id: If39fa33b1c52579bf5d376ce4722408cee3ca951\n"
    },
    {
      "commit": "6b0fb368707a2d47dd3fbeaf01c214de5227baa0",
      "tree": "ba599a214dc47552cd87803cfbd812b5e0685597",
      "parents": [
        "daa944a167c3e7365ea6f9b6712950edd5ca2dd4",
        "1506921e8e7897be8297365dcaf15f4c6d6eb472"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 16:09:55 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 09 16:10:14 2013 -0800"
      },
      "message": "Merge \"Revert \"App home directories are now 0700 for targetSdkVersion \u003e 17\"\""
    },
    {
      "commit": "1506921e8e7897be8297365dcaf15f4c6d6eb472",
      "tree": "2616559fc595745fc7b07962d43ffa6b54329f38",
      "parents": [
        "b102fb8ed5acdfa5f47e60b7d9fef7b5d74bd9fd"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 15:54:56 2013 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jan 09 15:54:56 2013 -0800"
      },
      "message": "Revert \"App home directories are now 0700 for targetSdkVersion \u003e 17\"\n\nThis reverts commit 92091fa9636403728fe94cc83400495a8612c2d3.\n\nBug: 7966399\nBug: 7208882\n"
    },
    {
      "commit": "a06de0f29b58df9246779cc4bfd8f06f7205ddb6",
      "tree": "c8ecd3323c1112dd46a9470600eab5df022ca85c",
      "parents": [
        "2e9f65f978397d112dbfb134d374588515bb644a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 11 16:34:47 2012 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 09 12:47:47 2013 -0800"
      },
      "message": "New \"app ops\" service.\n\nInitial implementation, tracking use of the vibrator, GPS,\nand location reports.\n\nAlso includes an update to battery stats to also keep track of\nvibrator usage (since I had to be in the vibrator code anyway\nto instrument it).\n\nThe service itself is only half-done.  Currently no API to\nretrieve the data (which once there will allow us to show you\nwhich apps are currently causing the GPS to run and who has\nrecently accessed your location), it doesn\u0027t persist its data\nlike it should, and no way to tell it to reject app requests\nfor various operations.\n\nBut hey, it\u0027s a start!\n\nChange-Id: I05b8d76cc4a4f7f37bc758c1701f51f9e0550e15\n"
    },
    {
      "commit": "c34bc1178b3d5e60651e4b1ffb416ff8235bf388",
      "tree": "c108eceb8c8c673b6958baccca1b9a1a604daf7a",
      "parents": [
        "995c25bbcb0116eaa4010fb2635ea8ad00c0441c"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 08 15:02:13 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 08 15:02:13 2013 -0800"
      },
      "message": "Turn off debug logging.\n\nChange-Id: I8dcfbb1f91d63e9126822a0c45b34cb21c09fa2a\n"
    },
    {
      "commit": "ef6550195f2f403e5ace27d49ae4f7f38d29cf4a",
      "tree": "09b6d539e9a1b9741d3fb7ea021c50f97722639a",
      "parents": [
        "73164dc7bce52f6658eb2f786c45538e52404ab4"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Thu Jan 03 11:20:24 2013 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 08 00:36:16 2013 -0800"
      },
      "message": "Release Session earlier, release Session later.\n\nFor finishDrawingWindow queue the performLayoutAndPlaceSurfaces call\nand return immediately.\n\nFor setTransparentRegionHint call the WindowStateAnimator method\nimmediately, removing the previous queueing of it.\n\nFixes bug 7174665.\n\nChange-Id: Ia52f9a6685842220e4ffca6e214ee366470ff666\n"
    },
    {
      "commit": "73164dc7bce52f6658eb2f786c45538e52404ab4",
      "tree": "86ed8ae4ac4ca7fff157c3a8369709e0e6564e9d",
      "parents": [
        "581068131c192a8c495fac00d3c61807580c7eca",
        "1420b93fa5606979fd67eaf80f50294d4f8c191b"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 08 00:23:46 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 08 00:23:46 2013 -0800"
      },
      "message": "Merge \"Combine DimAnimator and DimSurface into DimLayer\""
    },
    {
      "commit": "1420b93fa5606979fd67eaf80f50294d4f8c191b",
      "tree": "dae8e33d3f9e660398e3215b6eaf165d92756285",
      "parents": [
        "a22f980f993876570eab8297d3c2207c7fe3d65e"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Dec 28 17:14:38 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Tue Jan 08 00:22:22 2013 -0800"
      },
      "message": "Combine DimAnimator and DimSurface into DimLayer\n\nReplace two classes that did similar things in a complicated manner\nwith one class that does it more simply.\n\nBug 7064755 fixed.\n\nChange-Id: I8c415671f60d1d2ece9da5916421f4d24aed2d65\n"
    },
    {
      "commit": "581068131c192a8c495fac00d3c61807580c7eca",
      "tree": "730101d1db2d4c9eb5da8a7f760143110abc05af",
      "parents": [
        "9a29a5d6790cda3f9eedd8231570d9b4f76c06cd"
      ],
      "author": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Fri Dec 28 12:27:40 2012 -0800"
      },
      "committer": {
        "name": "Craig Mautner",
        "email": "cmautner@google.com",
        "time": "Mon Jan 07 23:39:11 2013 -0800"
      },
      "message": "Remove some TODOs.\n\nChange-Id: I52f5a8a76593dde177c2e931f656b13134a3bd2b\n"
    }
  ],
  "next": "9a29a5d6790cda3f9eedd8231570d9b4f76c06cd"
}
