)]}'
{
  "log": [
    {
      "commit": "2d94231ef91c732f649ff7af9520ee9eac441b16",
      "tree": "34907f59357a6b7896c2fa8ce94a5a7e58687b27",
      "parents": [
        "499b743851aa84b9fc1a7e445e189946bc47ad5d"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Aug 05 12:17:37 2010 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Aug 06 08:40:50 2010 +0800"
      },
      "message": "Add SIP service into system server.\n\nChange-Id: Icc39e4e54768cfdcc1b20a3efe6206009b9a8d10\n"
    },
    {
      "commit": "3c7c351a6217ac48b741740167c201a679a0ca65",
      "tree": "f539d70e0a46249f01dd6fb45563f1ebc4bed706",
      "parents": [
        "cde66df44240cfe5a7bec12ac52464c3bf26c14f"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 15:44:39 2010 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 04 23:47:38 2010 -0700"
      },
      "message": "Tracking merge of dalvik-dev to gingerbread\n\ngit cherry-pick --no-commit f77cf7f0\ngit cherry-pick --no-commit c8f503b5285e30c1a881d0ba860ba9021f57d113\ngit cherry-pick --no-commit 570bb561\ngit cherry-pick --no-commit e2417541\ngit cherry-pick --no-commit e4d81f25bd4dc1a5c909b56ab56a56406290da30\ngit cherry-pick --no-commit 5e8a587d\n\nChange-Id: I101a385d43f3e0f4ce5352217f92ef67a3908c88\n"
    },
    {
      "commit": "1bf797857e025e8a71db86fb9e79765a767ec1eb",
      "tree": "e8d1aabae069f2b7368be746b99667eb150363f5",
      "parents": [
        "ff7049ab2886acc73e145367118646f7741ce333"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 23:41:37 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 19 17:57:29 2010 -0700"
      },
      "message": "new SensorService\n\nremove old sensor service and implement SensorManager\non top of the new (native) SensorManger API.\n\nChange-Id: Iddb77d498755da3e11646473a44d651f12f40281\n"
    },
    {
      "commit": "80a60ba85b5c2ed40e8685a16ce6d3ed31ef0929",
      "tree": "c0607756e614e65e8a818a65996d25ec4128f402",
      "parents": [
        "aa1933ac4cb135be5469db275af7a758cdfdf744"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 14 19:58:30 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jul 14 19:58:30 2010 -0700"
      },
      "message": "Clean up some style in the makefiles.\n\nChange-Id: I993702808395f37c2e9d3c7e457d2952be51d795\n"
    },
    {
      "commit": "fef42db92568918161a2a9d69411290adfa1720f",
      "tree": "9677b197a4bce2db746ed0568b48aa37caad7212",
      "parents": [
        "faed5fbf1583ccb6633cde31f1ec3a3acf508260"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 04 13:38:43 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 04 13:38:43 2010 -0700"
      },
      "message": "Add sample code.\n\nChange-Id: I8f598dcbccbb0c43cedc1e1d02f6e3a46d6ebc67\n"
    },
    {
      "commit": "0cbda99f8721ad9b03ada04d2637fb75a2a0feca",
      "tree": "99b716653b139e560223dfc764bfc9a746df7bb5",
      "parents": [
        "503007dd023668b1e45de948d3673e594d7f5a82"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Sun May 02 16:28:15 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:41 2010 -0700"
      },
      "message": "The status bar draws its icons now.\n"
    },
    {
      "commit": "90233a1ee50980310613b50f22fc68dd7b40ded8",
      "tree": "8853530dcb5119b346a00ecf894c9a68f3356c1b",
      "parents": [
        "25f95f92005594f2ef094001c54cb4c39eec3ade"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Apr 12 08:16:18 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:40 2010 -0700"
      },
      "message": "Add IStatusBar\n\nChange-Id: Ie73d665085d5ce7358c285bf332ef1dc96005d0f\n"
    },
    {
      "commit": "25f95f92005594f2ef094001c54cb4c39eec3ade",
      "tree": "5d203a4356ec39d79fda29d96780b5c3d4d92bae",
      "parents": [
        "2314aab5064ce09f09270e52fa12a38d07464278"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Apr 08 18:37:10 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:40 2010 -0700"
      },
      "message": "Rename IStatusBar to IStatusBarService.\n\nChange-Id: Icfec2a830f037b21f6afaa796bf49da610567e7b\n"
    },
    {
      "commit": "2314aab5064ce09f09270e52fa12a38d07464278",
      "tree": "835e5fcaec33d61b992eaf99b3befe9263a326ab",
      "parents": [
        "c87d5849f22d805b3dde8f70f60ddfadfc7c7b9d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Apr 08 16:41:23 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed Jun 02 14:48:39 2010 -0700"
      },
      "message": "First pass at splitting the status bar for the different devices.\n\nChange-Id: I2f568df92f88dfe8de18d24dd004239f52761aa6\n"
    },
    {
      "commit": "864feb8dfac48092fd627a3b77ff2c3bf9000357",
      "tree": "fb3f7e6df4a59f3a42c726b88830ef748558621a",
      "parents": [
        "4ec730cabb68ee8347c6aa5dc929b09651275aca"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue Mar 16 19:08:54 2010 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Tue May 18 16:02:28 2010 -0700"
      },
      "message": "disable emma instrumentation for framework, ext and services (DO NOT MERGE)\n\nWhen these libraries are instrumented with emma instructions, runtime keeps\nrestarting on native crashes. To acheive a fully emma instrumented build,\nwe need to disable emma instrumentation on these libraries.\n\nChange-Id: I51cb3bf71e0e348264fe5f21a27085fb2b9e6670\n"
    },
    {
      "commit": "626db9101e8b4b22faac389763bd2653586a281b",
      "tree": "40ab7a7e6099202094b8f03cdab2c0ca08447ee4",
      "parents": [
        "9719fe11a10d274d31b77f812e9055c40195c713"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon May 17 18:21:44 2010 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon May 17 18:25:58 2010 -0700"
      },
      "message": "Store the list of source directories for the SDK.\n\nChange-Id: I3e8425c8eb7c808b60ec764ff81bcbb7aec9684c\n"
    },
    {
      "commit": "3e9e9696f147c8df1236c1d7aa9496124864a81c",
      "tree": "8865c55bdf193d4cd85eb46dca965de5cdfb001a",
      "parents": [
        "8ea405d196c8b536047d961801bb2b6c18a3ea2a",
        "eb9cbb8fdddf4c887004b20b504083035d57a15f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 17 14:56:53 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 17 14:56:53 2010 -0700"
      },
      "message": "am eb9cbb8f: Resurrect flashlight support in obsolete IHardwareService Binder API.\n\nMerge commit \u0027eb9cbb8fdddf4c887004b20b504083035d57a15f\u0027 into froyo-plus-aosp\n\n* commit \u0027eb9cbb8fdddf4c887004b20b504083035d57a15f\u0027:\n  Resurrect flashlight support in obsolete IHardwareService Binder API.\n"
    },
    {
      "commit": "eb9cbb8fdddf4c887004b20b504083035d57a15f",
      "tree": "6dd338fbe9142e4d39f052e80ae92565ee43416b",
      "parents": [
        "cfa2de303e58b971e334363356d29601e61d11c8"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 17 17:27:30 2010 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 17 17:47:20 2010 -0400"
      },
      "message": "Resurrect flashlight support in obsolete IHardwareService Binder API.\n\nThis is to avoid flashlight apps that had been using reflection to access\nthis API after this class was removed after eclair.\n\nChange-Id: I26ed929abad93345468eb33d4a15977a31ebea7e\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "c6b7a2d704b6196c2f578302af607d58b0b85e4b",
      "tree": "d8765df3ff8f172b1df66036acc0fa54190fa048",
      "parents": [
        "a5cd816c720ed87b91a33aa5d000a0d308c74453",
        "d1e9d590941303c004459f3d798b26f1bf091535"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri May 14 18:42:11 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 14 18:42:11 2010 -0700"
      },
      "message": "am d1e9d590: Doc change: add sizes/sums for sdk/ndk/adt packages.\n\nMerge commit \u0027d1e9d590941303c004459f3d798b26f1bf091535\u0027 into froyo-plus-aosp\n\n* commit \u0027d1e9d590941303c004459f3d798b26f1bf091535\u0027:\n  Doc change: add sizes/sums for sdk/ndk/adt packages.\n"
    },
    {
      "commit": "d1e9d590941303c004459f3d798b26f1bf091535",
      "tree": "b2a494249913c151f1b6cd4af400a1a73ca5eb6a",
      "parents": [
        "eb9128f9b0ee660504621381fd96f82d5bf8a3fd"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri May 14 18:14:42 2010 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri May 14 18:14:42 2010 -0700"
      },
      "message": "Doc change: add sizes/sums for sdk/ndk/adt packages.\n\nChange-Id: I9385c5b90a8f366764337adf4221fba4d7448568\n"
    },
    {
      "commit": "052e2102df8e45af2797faff7aefda26aeb345d7",
      "tree": "b084e786daa18485e4f01e4a1d5fb1c10af40796",
      "parents": [
        "89f74cf66c635c8835d6fc4057c6901037f704dd",
        "0d1b0814be24f501395bf175fba8691117f782d5"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed May 12 07:50:57 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:50:57 2010 -0700"
      },
      "message": "am 0d1b0814: Doc change: updates for new tools, platform, adt versions. Misc other fixes updates in doc files.\n\nMerge commit \u00270d1b0814be24f501395bf175fba8691117f782d5\u0027 into froyo-plus-aosp\n\n* commit \u00270d1b0814be24f501395bf175fba8691117f782d5\u0027:\n  Doc change: updates for new tools, platform, adt versions. Misc other fixes updates in doc files.\n"
    },
    {
      "commit": "0d1b0814be24f501395bf175fba8691117f782d5",
      "tree": "9aa8a36c07711b8aee40c300f6989aa13f4f4897",
      "parents": [
        "4d5275e723221df67aad00a440dd6a2e9a22caae"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Apr 07 17:05:16 2010 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue May 11 20:07:32 2010 -0700"
      },
      "message": "Doc change: updates for new tools, platform, adt versions. Misc other fixes updates in doc files.\n\nChange-Id: I7abf541316f2796079cf646a3294db535fcaaa8a\n"
    },
    {
      "commit": "769612e160c9be01c96371412e12d367e5063e9f",
      "tree": "e84ba960e97f82d6eecb35f602844037fc74d516",
      "parents": [
        "4d89954dc4572a05339dc7a95ec683892558162b",
        "b32c2402c2b9d58b4f74be62dac6ce2781caec05"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue May 11 10:18:47 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 11 10:18:47 2010 -0700"
      },
      "message": "am b32c2402: Doc change: add toc references to tictactoe sample apps and screen shots.\n\nMerge commit \u0027b32c2402c2b9d58b4f74be62dac6ce2781caec05\u0027 into froyo-plus-aosp\n\n* commit \u0027b32c2402c2b9d58b4f74be62dac6ce2781caec05\u0027:\n  Doc change: add toc references to tictactoe sample apps and screen shots.\n"
    },
    {
      "commit": "b32c2402c2b9d58b4f74be62dac6ce2781caec05",
      "tree": "ef366e889525effc74f6256a862725b9bec9556b",
      "parents": [
        "a27579016caf1438400a3637e3896bec653e3756"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Sat May 08 21:22:11 2010 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon May 10 16:19:52 2010 -0700"
      },
      "message": "Doc change: add toc references to tictactoe sample apps and screen shots.\n\nChange-Id: I7d520587c0e6b2252e819029a2f053893fdcd7c3\n"
    },
    {
      "commit": "717e135c17239ff3dd0698eb82b26f8e8ade0d08",
      "tree": "1824609708a4272c0509d83898c3d2be489e7cae",
      "parents": [
        "5610c2871b5a8abab081c9e209925e2f0f2e3966",
        "62c28caee4a26e106134264f917bacef77438483"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon May 10 09:56:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 09:56:43 2010 -0700"
      },
      "message": "am 62c28cae: Merge \"docs: change SearchableDictionary to \"v2\" and remove old \"new\" superscripts from resources toc\" into froyo\n\nMerge commit \u002762c28caee4a26e106134264f917bacef77438483\u0027 into froyo-plus-aosp\n\n* commit \u002762c28caee4a26e106134264f917bacef77438483\u0027:\n  docs: change SearchableDictionary to \"v2\" and remove old \"new\" superscripts from resources toc\n"
    },
    {
      "commit": "aff856d053ba239114e7f16d3cdd240a6d973f2f",
      "tree": "95dfbbad36cad13bb1c76e138d13065c33306399",
      "parents": [
        "e34d31e690cdfc529fe8e1e8f70e50c3719a4ccc",
        "0dd3a239519369933d4efa701479c816b4b33874"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon May 10 09:43:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 09:43:03 2010 -0700"
      },
      "message": "am 0dd3a239: Merge \"Doc change: cherry-pick from master: Activity Testing/Hello, Testing tutorials doc files\" into froyo\n\nMerge commit \u00270dd3a239519369933d4efa701479c816b4b33874\u0027 into froyo-plus-aosp\n\n* commit \u00270dd3a239519369933d4efa701479c816b4b33874\u0027:\n  Doc change: cherry-pick from master: Activity Testing/Hello, Testing tutorials doc files\n"
    },
    {
      "commit": "bf1d0b900e7540c55fb3b88e70aa16e2c59ad218",
      "tree": "28ac1f070fb2c8f9c7dd84923d2be5162dc033ca",
      "parents": [
        "d13efb20089e44e6958cb9704864c03821f19e1c"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri May 07 15:08:36 2010 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri May 07 15:08:36 2010 -0700"
      },
      "message": "docs: change SearchableDictionary to \"v2\" and remove old \"new\" superscripts from resources toc\n\nChange-Id: Ic240502b8874fdc69d1d97cbf9df0ef925fbc071\n"
    },
    {
      "commit": "18457d0c21adb67fe420818ee6b857ece43edffc",
      "tree": "dd75b50a4c969db05c8eacd15b5a130944e4c4cb",
      "parents": [
        "e50b940f153070a631a6c0d426cb7f3207042659"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Wed Apr 14 14:40:59 2010 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri May 07 10:06:53 2010 -0700"
      },
      "message": "Doc change: cherry-pick from master: Activity Testing/Hello, Testing tutorials doc files\n\nChange-Id: If43ba08af00c8c9fcf6d05834f8b2a7a719b4bec\n"
    },
    {
      "commit": "2529d4eab80778aef9c7a9fe27712a41686d22c4",
      "tree": "c3d2a725e0f091b92e851a69f4b8aa0c198f368e",
      "parents": [
        "d47cdbb7ea97a6ed3b428d913fa45883904d0ba8"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Apr 30 10:13:34 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Apr 30 13:23:32 2010 -0700"
      },
      "message": "Adapt to new location of libcore\n\nChange-Id: I495bf86a8195c85d16917c129dcbb0f4c5de68d2\n"
    },
    {
      "commit": "c4c696ab5b97c0a33983a28ae6e5bd211c88e72c",
      "tree": "45fc5439bd51f52d8bb87d116e74af80dd426621",
      "parents": [
        "1892013643537f5fc330f5b0a02a0e9cb08b1134"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Apr 19 12:00:15 2010 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Apr 19 12:00:15 2010 -0700"
      },
      "message": "add droiddoc flag to include since-tags for api level 8\n\nChange-Id: Ib7dc5114b075001cdf78db96dbbaa99644836f8b\n"
    },
    {
      "commit": "9e696c29f06d45d2891e1d38fd8d9033a9e21bb9",
      "tree": "0ef181295c3ea1e8a0aa38b06b2bfe4e43a2da3b",
      "parents": [
        "ecb0e637870553f9c12dc6b9178de0512563af9c"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 01 14:45:18 2010 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Apr 08 12:34:45 2010 -0700"
      },
      "message": "Add service to monitor/control the flow of data.\n\nbug:2576057\nChange-Id: Ib343c7ee1d619c6978910d9ee597db195d5aa3b6\n"
    },
    {
      "commit": "e779bdc9b4366a9293b87424b42cff45d46336a6",
      "tree": "26589f4d60d2f4feffb30292bf8ccc45df45c6ea",
      "parents": [
        "567b57b68884c68e3c95834589e5f7921f380a45"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 07 11:15:45 2010 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Apr 07 13:37:00 2010 -0700"
      },
      "message": "Add Backup/Restore sample to the SDK docs\n\nPart of bug #2545514\n\nChange-Id: I235d33b839924d4bc574fd1e6762d169902e1c8b\n"
    },
    {
      "commit": "7b229effcced9ad5aaa3d2ea6b4b219239348481",
      "tree": "fecb27ee308b9027ad392374763051f955aa3154",
      "parents": [
        "a947fce312fb0670ed4e5a486cf9dbd226baa948"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Mar 26 17:32:26 2010 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Mar 26 17:32:26 2010 -0700"
      },
      "message": "cherry-pick af4786bcb5945f72e8639d74611cd5f9b0236710 to froyo\n\nConflicts:\n\n\tdocs/html/sdk/installing.jd\n\nChange-Id: Id43ad8c62039099bb518722bb8694dcf8ba6dfa6\n"
    },
    {
      "commit": "6ffce2e9a3c57634bb73f8ff133ca680f8070d5d",
      "tree": "39b0492ba064caf003c47db9bd41ac0860e36743",
      "parents": [
        "8e461c9add08ac8705c50aa0357304aea6a5dbe0"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Mar 08 14:48:40 2010 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Mar 09 17:00:18 2010 -0500"
      },
      "message": "Add new shutdown observer for MountService.\nUse new observer before rebooting and shutting down.\nAdd some unit tests for unmount and shutdown code paths\nFix registering/unregistering part in MountService\nUse ShutdownThread in PowerManager.reboot()\nAdd reboot support to ShutdownThread.\nRemove MountService code from PowerManagerService.java and Power.java.\nClean shutdown/reboot is handled exclusively by ShutdownThread now.\n\nChange-Id: Iefb157451d3d9c426cb431707b870a873c09123d\n"
    },
    {
      "commit": "4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3",
      "tree": "3f1276aef1448aad75a0d44ad1abbbd1478a4937",
      "parents": [
        "931bf89d327ecf07301231fd86b17deac535feaa"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 15:46:30 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Mar 05 16:27:15 2010 -0800"
      },
      "message": "Refactor android.backup \u003d\u003e android.app.backup\n\nChange-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8\n"
    },
    {
      "commit": "d5176cfe6eae954e9cef1e2ec17859a5089e1330",
      "tree": "f1266d2fc2eef8d9114e3c7af403a65c43da8b24",
      "parents": [
        "07863ab6bc6f5ecf9a8454357667af6862588fc2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 28 11:56:42 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 02 08:39:26 2010 -0800"
      },
      "message": "First implementation of the audio focus management as an extension\nof AudioManager and AudioService.\n"
    },
    {
      "commit": "87bba1ee14279bb14a28d42e27c4ef66d9967bf8",
      "tree": "915eb0be9f5fac21d24bacf76438cafb9f14bae0",
      "parents": [
        "8c49df4f36bee2878ab0ff7dc99dff60dc7354fb"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 17:25:54 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 26 23:32:48 2010 -0800"
      },
      "message": "Move DeviceAdmin APIs to android.app.admin.\n\nAlso add ability for admins to hide themselves when not in use,\na facility for admins to not allow other admins to reset\ntheir password, and debug dumping.\n"
    },
    {
      "commit": "e70f61b1160e953e5e4d18d30a463fa9ba821779",
      "tree": "763d50921749fb256c7e2b656db045ee21277b06",
      "parents": [
        "fda25347b8aaa860e0fdbc972c0f4411c85f8fa3"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 10:49:27 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Sat Feb 20 17:29:05 2010 -0800"
      },
      "message": "Retry test-runner tests move.\n\nThis time change the frameworks makefile so it only includes test-runner/src\nin the public API.\n"
    },
    {
      "commit": "8946dd3355fc1dcbad872c0546e356474d4cc5de",
      "tree": "8b614c938152df8ad809fd9bf03c6876c8a7a58e",
      "parents": [
        "eac461cf7c246df737d2b0e7bd30be176a34c36e"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 09:19:34 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 19 14:20:54 2010 -0800"
      },
      "message": "Move package from internal to external and vice versa.\n"
    },
    {
      "commit": "1c9131c91f27c8258dfad0a92cee105275f5422a",
      "tree": "753fab99f2f62b45d1ba5f055da1cb2068243e11",
      "parents": [
        "5b31fdae6004c48e4915afb084c3f7944ac0f9aa"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Sat Feb 13 10:38:55 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Sat Feb 13 12:40:12 2010 -0800"
      },
      "message": "Remove all traces of the old checkin service (and its associated parental\ncontrol interfaces) from the framework.\n"
    },
    {
      "commit": "9c57aca188665916cc1dafbbe23dbe8cfd98883d",
      "tree": "266ea4015d2da91c58891e60aec2138d3962408a",
      "parents": [
        "2f853ea47a194680657ddc2cc54336a14f38b8ba"
      ],
      "author": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 12 14:09:55 2010 -0800"
      },
      "committer": {
        "name": "Mike LeBeau",
        "email": "mlebeau@android.com",
        "time": "Fri Feb 12 14:09:55 2010 -0800"
      },
      "message": "Make the corresponding frameworks change to add VoiceRecognitionService to\nthe list of SDK sample apps.\n"
    },
    {
      "commit": "27b28b3f62bd3b54fa13acd5d035940b9be464f3",
      "tree": "d1f44096f7071bbc53e5bc979117be8e0f4aa55c",
      "parents": [
        "d5663a108760de672b130ffabd4f6632982f75e5"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    },
    {
      "commit": "18e939623556928f73fcc7511c85a537929a4a7e",
      "tree": "e1e85e2634f45742a4f358ad640f5a0ed76066c0",
      "parents": [
        "4e208bd8722ad48c342c0128313ef40971234121"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Feb 10 19:27:58 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:22:09 2010 -0800"
      },
      "message": "Eliminate dependencies on Checkin, replacing checkin events with EventLog\nevents (and in one case, a DropBox entry).\n\nAdd a simple intent that triggers master-clear (and toggle EFS), given the\nright permissions.\n\nBug: 2264596\nBug: 2350452\nBug: 2264596\n"
    },
    {
      "commit": "f3449ee8536fb579da0022247ae78cd82d6fbbdc",
      "tree": "593156d87198214d9b75a630a0c2f5ba2dac3d33",
      "parents": [
        "a63730d1f103f78589faef461d2af7351fc49f42",
        "e524ff534e1aabc45819e978c26bf61d9b71f444"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Feb 09 18:48:59 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 09 18:48:59 2010 -0800"
      },
      "message": "am e524ff53: am 859f4556: Merge \"Add generated html docs for SampleSyncAdapter and CubeLiveWallpaper. Add article for live wallpaper.\" into eclair\n\nMerge commit \u0027e524ff534e1aabc45819e978c26bf61d9b71f444\u0027\n\n* commit \u0027e524ff534e1aabc45819e978c26bf61d9b71f444\u0027:\n  Add generated html docs for SampleSyncAdapter and CubeLiveWallpaper. Add article for live wallpaper.\n"
    },
    {
      "commit": "d323b4c338106ccedf6dd974e201947eeb2b2d73",
      "tree": "d878577190fbe3755a14f400db341bcc2bb7d396",
      "parents": [
        "31bfdf695ef741f64066ef605bd6a7e23df88714"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Feb 08 10:53:12 2010 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Feb 09 18:38:30 2010 -0800"
      },
      "message": "Add generated html docs for SampleSyncAdapter and CubeLiveWallpaper. Add article for live wallpaper.\n\nChange-Id: Idbeda9a677c9772a8348146fe028083d9887a9d2\n"
    },
    {
      "commit": "a63730d1f103f78589faef461d2af7351fc49f42",
      "tree": "c68abd5a73daea5b3aab93b713031ae6df95e846",
      "parents": [
        "e1d683074b9a5cfa12c39e2e3d5a538599a9da75"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Sun Feb 07 22:25:34 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Tue Feb 09 17:49:43 2010 -0800"
      },
      "message": "Log ContentProvider operations to the EventLog.\n\nJust like with db_operation, operations over 100ms are always logged,\nwhile operations under that are subsampled.\n\nThis will help with performance analysis, getting real-world\nperformance numbers from dogfooders.\n"
    },
    {
      "commit": "b104340496e3a531e26c8f428c808eca0e039f50",
      "tree": "11247cb68359d43ca4871c0cb0165c9bec339a6f",
      "parents": [
        "3ee1317173260252d475772fec09d492f8fcfd33"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Feb 05 08:26:50 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:03:16 2010 -0800"
      },
      "message": "Framework: Clean up / Refactor Mount APIs\n\n - Move android.storage.* -\u003e android.os.storage.* and refactor users\n - Refactor generic shares back to explicit ums enable/disable/isEnabled\n - Remove media insert/removed event callbacks (not ready for Froyo)\n - Remove \u0027label\u0027 from volume state change callbacks\n - Add public API functions for enabling/disabling USB mass storage (permissions enforced\n   in MountSevice)\n - Remove some stray un-needed import lines\n - Move android.os.IMountService / android.os.IMountServiceListener -\u003e android.os.storage\n - Improve code comments\n\nUpdated:\n  MountService: Add dup state check and move debugging behind a conditional\n  UsbStorageActivity: Fix review comments + a TODO\n  StorageNotification: Add @Override tags\n  StorageManager: Don\u0027t use a static Listener list\n  MountService: Reduce bloat and fix \u003d\u003d where I meant .equals()\n  PackageManagerTests: Update for new API\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "c5d1c6db61f208b206b260f897bb5bbc64be4d97",
      "tree": "91a5ffe88326b446f57b7249ddf1406b8654d2f6",
      "parents": [
        "0a45a09814dea0398647f26497ecff54a77c5f8c"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Wed Jan 27 12:17:49 2010 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Fri Feb 05 15:16:20 2010 -0800"
      },
      "message": "add sync polling\n\n- added the ability to specify that a sync (of account/authority/extras)\n  should occur at a given frequency\n- the existing daily poll code was replaced with seeding each\n  account/authority with a 24 hour periodic sync\n- enhanced the \"adb shell dumpsys content\" output to show the\n  periodic syncs and when they will next run\n"
    },
    {
      "commit": "4270e1ea74c57f1c65620e9f5ecaa8c2a5daf0e1",
      "tree": "151ed15644268731334b27a1e179ed556c1cd407",
      "parents": [
        "78071b73479b9bea536dd1d5260ea78dd176640b"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 05:32:19 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 02 11:17:46 2010 -0800"
      },
      "message": "MountService: Massive bloat reduction and rewrite\n\n- Most API calls now return an int as a result code (see MountServiceResultCode.java)\n- All notification code has been removed\n- All settings code has been removed\n- Removed UMS centric API calls in favor of more generic \u0027shares\u0027\n- Mount error reporting is no longer done via an event, but is done as part of the\n  actual mount process\n- Rework vold IPC commands to be more sane\n\nUpdated:\n    MountService: Rename MountServiceObserver -\u003e MountServiceListener\n    MountService: Add support for Async callbacks\n\nUpdated:\n    MountService: Add BinderDeath handling\n\nUpdated:\n    MountService: Remove notifys since we dont listen anyways\n\nUpdated:\n    MountService: Fix bad cast\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "e599a9d24b416d693ce60c97339f18c927aef5db",
      "tree": "6123dcabfc901c890deb86a30aff0064a8e6b0d7",
      "parents": [
        "5fdff9e6c50faa6196349e8aecc08d0b9bc5467d"
      ],
      "author": {
        "name": "Dirk Balfanz",
        "email": "balfanz@google.com",
        "time": "Mon Feb 01 17:47:48 2010 -0800"
      },
      "committer": {
        "name": "Dirk Balfanz",
        "email": "balfanz@google.com",
        "time": "Mon Feb 01 17:47:48 2010 -0800"
      },
      "message": "Revert \"adding OAuth library\"\n\nThis reverts commit cc1aa994af5957815e47ec102a0eab3b98111eb1.\n"
    },
    {
      "commit": "cc1aa994af5957815e47ec102a0eab3b98111eb1",
      "tree": "cdfb2e505e4667a8172b68b24f7f29173e71e1f1",
      "parents": [
        "239d5b3638ae486f715f44a8c1a71420f486049c"
      ],
      "author": {
        "name": "Dirk Balfanz",
        "email": "balfanz@google.com",
        "time": "Tue Jan 19 17:39:26 2010 -0800"
      },
      "committer": {
        "name": "Dirk Balfanz",
        "email": "balfanz@google.com",
        "time": "Fri Jan 29 15:45:19 2010 -0800"
      },
      "message": "adding OAuth library\n"
    },
    {
      "commit": "604b8714024e1234821952d091be48cc6a86b794",
      "tree": "d0b399a9cf8ab18891493aa7f280379f4105154e",
      "parents": [
        "6580a1449f1f3f1038ffc40d5d26f03bd60e8b7a",
        "aa86da9d14d08ee39ca3e3fcabba01560c64f37d"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Jan 29 13:52:20 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 29 13:52:20 2010 -0800"
      },
      "message": "am aa86da9d: am 196ec566: Merge \"SDK doc change: Increment the platform version var used in doc footer and elsewhere.\" into eclair\n\nMerge commit \u0027aa86da9d14d08ee39ca3e3fcabba01560c64f37d\u0027\n\n* commit \u0027aa86da9d14d08ee39ca3e3fcabba01560c64f37d\u0027:\n  SDK doc change: Increment the platform version var used in doc footer and elsewhere.\n"
    },
    {
      "commit": "b4a162e50a96d2eef5fa3ed686e1418c4fbc8ded",
      "tree": "d1b006dd2707c6de51b0ba1ee64c087580ebe7a4",
      "parents": [
        "77c292d83e70793dcb23677ab60a6c707fc613dd"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Jan 28 08:03:44 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 29 06:30:03 2010 -0800"
      },
      "message": "framework: os: Introduce IMountServiceObserver\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "ab2c0a4fab5ce082c16cdb11308da410228cc9f0",
      "tree": "cb151136f70108d2c26d4984bec22934025d5443",
      "parents": [
        "965f4a6b4b5f3dd71e70f427af0c8a902e5880ef"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Jan 28 17:50:10 2010 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Jan 28 17:50:10 2010 -0800"
      },
      "message": "SDK doc change: Increment the platform version var used in doc footer and elsewhere.\n\nBug: 2160782\nChange-Id: I6e7721bca95cdc6565f3200d7609a4ea9b45cf9b\n"
    },
    {
      "commit": "45948fd407da525e6c8721ba75cfc8b356fc7e0f",
      "tree": "d19548f799589917419eca873adf6fefbeb6e712",
      "parents": [
        "8ea25cc1a104bfc95d5742a8c0ab582c7812ee74"
      ],
      "author": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Jan 14 15:11:42 2010 -0500"
      },
      "committer": {
        "name": "Patrick Scott",
        "email": "phanna@android.com",
        "time": "Thu Jan 28 08:27:42 2010 -0500"
      },
      "message": "First pass at the url rendering service.\n\nThe service renders a list of urls at the given dimension and invokes the\ncallback interface for each result. A ParcelFileDescriptor is used to transfer\nthe large image data to the client. The client must close the file descriptor\nis order free the underlying resources.\n\nA more robust api will use UrlRendererRequest and UrlRendererResponse objects\nto transfer data.\n"
    },
    {
      "commit": "8ea138cbf12b140d43fd81f4f12fe1a9234f1f25",
      "tree": "65d820bd65d69af867e4558b1fbd407634309eb2",
      "parents": [
        "2fc1f4a02957de3fdc785ca3dde414fb8e97bc49"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 26 18:01:04 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jan 27 13:51:53 2010 -0800"
      },
      "message": "More work on device admins:\n\n- You can now show a dynamic message to the user when asking to\n  have your DeviceAdmin added.\n- A DeviceAdmin can now provide a warning message that is displayed\n  before a user disables it.\n- Better ordering (and text) of the policy warnings.\n- New API to set the maximum failed password attempts before the device\n  wipes itself.\n- We now store the number of failed unlock attempts in persistent\n  storage.\n- New managed dialog APIs that will be used by the settings app.\n\nAlso a little bit of cleanup as I was working on this - removed the\nlong unused MailboxNotAvailableException, fixed a java doc in Messenger.\n"
    },
    {
      "commit": "c028be4f3b8c7476b46859f66c3f33d528adf181",
      "tree": "8a740e6207e958572706a636fcb92425dbf13a6e",
      "parents": [
        "aeb4126736c1b93abe5252e1723c568a13da7c81"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Jan 25 12:19:12 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jan 27 10:26:43 2010 -0800"
      },
      "message": "AppsOnSd feature - Add default container\n\nAdd new remote interface to do temporary copies. The new\nremote stub handling is done on mHandler thread and doesn\u0027t need locking\nfor now.\nAdd new InstallArgs class and subclasses to isolate cases for installation.\nMove resource deletion for failed installs/upgrades to later on in installation\ncycle.\nFix code path for forward locked apps when using scanPackageLI\n\nTODO\u0027s\nFix installation paths to completely use InstallArgs based design later on.\nGet rid of using flags in various install/uninstall code paths.\nIdeally InstallArgs should be created using these flags and used in the\nrest of the code.\nFunction renames.\nRevisit mount api\u0027s.\n"
    },
    {
      "commit": "4d02d001ef6e06583e858e63e48d1aebf54ba28d",
      "tree": "62bc259feafbea7df30d695e0e00cff9dc0623de",
      "parents": [
        "55434a7999222d89205f32efb03da7e70dd74073"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 16:07:46 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Fri Jan 22 16:10:29 2010 -0800"
      },
      "message": "NetworkManagementService: Introduce INetworkManagementEventObserver\n\n  Introduce a callback event observer which can be registered on the\nINetworkManagementService instance to receive events from the service.\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "873f2145941cc28f6931dc18b5e9987bd22e2e19",
      "tree": "4793e2bca832a46a0d77eb3ce8072502f4c02661",
      "parents": [
        "97d1195832829905b07b7680b73bed8af959f430"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Jan 14 10:25:07 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Jan 19 10:47:52 2010 -0800"
      },
      "message": "framework: Introduce INetworkManagementService for communicating with netd\n\nThis is the framework-exposed interface for the (future) management of\nall Android network management functions. Initial support is for providing\ntethering.\n\nUpdated: Integrate feedback from review; clean up naming\n\nUpdated: Switch from add/remove/list to get/set for DNS forwarders\n         - allows prioritization / ordering of DNS servers\n\nUpdated: Refactor NAT api\n\nUpdated: Refactor NAT api (last time sorry)\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "d68478467e3f837511196c80891d7245d0e163df",
      "tree": "598148f587955a89e72017b59df3ba7ba4d8b20b",
      "parents": [
        "5fbf4094f5857ab15801c65a260a5c4b6866d655"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jan 12 18:14:19 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 17 15:10:24 2010 -0800"
      },
      "message": "First pass at new device policy and administration APIs.\n\nThis adds new DevicAdmin, DevicePolicyManager, and DeviceAdminInfo classes.\nSee the java docs for each on documentation on them.  Basically: a DeviceAdmin\nis what you derive from to administer a device; DevicePolicyManager is what you\nuse to apply and check your policy requirements and perform other administration\ntasks.\n"
    },
    {
      "commit": "9cebb377c57f3231dbdf278678596871abcef2b8",
      "tree": "80897795e03517c0c970320d2d9c99eabd2e21b7",
      "parents": [
        "44641d3db3b5fd5c7616c8a646ec8b6af20baa18",
        "18dedf2cdfd2c78d93061f20c4269f00449a8e6a"
      ],
      "author": {
        "name": "Trevor Johns",
        "email": "trevorjohns@google.com",
        "time": "Mon Jan 11 14:08:15 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 11 14:08:15 2010 -0800"
      },
      "message": "am 18dedf2c: am 50a3977c: Merge \"Adding BusinessCard sample to Android.mk and to the Resources TOC on developer.android.com.\" into eclair\n\nMerge commit \u002718dedf2cdfd2c78d93061f20c4269f00449a8e6a\u0027\n\n* commit \u002718dedf2cdfd2c78d93061f20c4269f00449a8e6a\u0027:\n  Adding BusinessCard sample to Android.mk and to the Resources TOC on developer.android.com.\n"
    },
    {
      "commit": "44641d3db3b5fd5c7616c8a646ec8b6af20baa18",
      "tree": "9fce984ff8e1b73f149cccb92ba57932c2241ba2",
      "parents": [
        "88098683b0a958d205d1c3c6252eeebc144fad62"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Jan 08 16:10:58 2010 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Mon Jan 11 14:00:35 2010 -0800"
      },
      "message": "Bug 2321983\n\nMove SYNC_DETAILS from framework/base to the gsf clientlib\n"
    },
    {
      "commit": "2187e240c0875c724de30407dfa1e32abd2c6bb1",
      "tree": "497b79f3606649708b3906e3e181c470fcc92e0b",
      "parents": [
        "063d03ed0882582840c7db610635aa89c1a01eec"
      ],
      "author": {
        "name": "Trevor Johns",
        "email": "trevorjohns@google.com",
        "time": "Thu Jan 07 16:26:39 2010 -0800"
      },
      "committer": {
        "name": "Trevor Johns",
        "email": "trevorjohns@google.com",
        "time": "Mon Jan 11 11:56:27 2010 -0800"
      },
      "message": "Adding BusinessCard sample to Android.mk and to the Resources TOC on developer.android.com.\n"
    },
    {
      "commit": "3ea664640d0dd08cf89fd38f7aa00756651f4830",
      "tree": "4804ba69c45b9293ce9104e1cb0dea5c1917e42b",
      "parents": [
        "45ad2a07509b6372b7337c3ef160cd6c4bb617e8",
        "aaab0b64e53db6e174236b022526a5f207b28570"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Dec 16 21:53:28 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 16 21:53:28 2009 -0800"
      },
      "message": "am aaab0b64: am f0cdfa99: add -since flag to droiddoc options for 7.xml, to apply api filtering to the reference\n\nMerge commit \u0027aaab0b64e53db6e174236b022526a5f207b28570\u0027\n\n* commit \u0027aaab0b64e53db6e174236b022526a5f207b28570\u0027:\n  add -since flag to droiddoc options for 7.xml,\n"
    },
    {
      "commit": "f0cdfa9955725c99cd4df6b933e4cb732847ebd1",
      "tree": "7670bd264ed922b384277ad93f26e2706f162b62",
      "parents": [
        "26099cd9ce44ef26ab3c9b342ec1a305c61b7a7c"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Dec 16 21:41:10 2009 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Dec 16 21:41:10 2009 -0800"
      },
      "message": "add -since flag to droiddoc options for 7.xml,\nto apply api filtering to the reference\n"
    },
    {
      "commit": "692bf86e67ef3bef98a64c1ad1c6f54b9f2020ae",
      "tree": "31c7dc2763581b69384912daec24c7e7c6a15f44",
      "parents": [
        "01dde47ea9dda6f869557931db5f64573b9ce73d",
        "479a49f74f77855825ba69b105c065422c24246a"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Tue Dec 15 15:04:00 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 15 15:04:00 2009 -0800"
      },
      "message": "am 479a49f7: am 7585586c: Merge change Ib1eb2e9e into eclair\n\nMerge commit \u0027479a49f74f77855825ba69b105c065422c24246a\u0027\n\n* commit \u0027479a49f74f77855825ba69b105c065422c24246a\u0027:\n  sdk doc change for esr: Add \"resources\" tab content. Fix links pointing to the old locations. Change Android.mk to output samples files to resources/samples. Misc other fixes.\n"
    },
    {
      "commit": "22558d0be8210aee1a2ab64b374bb357d4123acd",
      "tree": "68e6a9df29fa6c86447366cdcd4e537dc0ba1389",
      "parents": [
        "54bb575e85d1e40efbfbb868f37553cdd8ed318f"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Dec 10 16:25:06 2009 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Dec 14 11:40:02 2009 -0800"
      },
      "message": "sdk doc change for esr: Add \"resources\" tab content. Fix links pointing to the old locations. Change Android.mk to output samples files to resources/samples. Misc other fixes.\n\nBug: 2160782\nChange-Id: Ib1eb2e9e3fe3a7b2ad16387dbf888646a1195221\n"
    },
    {
      "commit": "e7c1b11ec892fbb1eb053f9aa4f6839031b19c1c",
      "tree": "61acad8ad31b89a8f1396ddcf6b8d665ddfa6987",
      "parents": [
        "8091424ea332f754e6f1c712a9e28bfa7d02741e",
        "54bb575e85d1e40efbfbb868f37553cdd8ed318f"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Sun Dec 13 12:26:11 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Dec 13 12:26:11 2009 -0800"
      },
      "message": "am 54bb575e: am 6f95f461: Fix the dependencies to make online-sdk-docs.\n\nMerge commit \u002754bb575e85d1e40efbfbb868f37553cdd8ed318f\u0027 into eclair-mr2\n\n* commit \u002754bb575e85d1e40efbfbb868f37553cdd8ed318f\u0027:\n  Fix the dependencies to make online-sdk-docs.\n"
    },
    {
      "commit": "54bb575e85d1e40efbfbb868f37553cdd8ed318f",
      "tree": "3136d15e04c21ae6a3fb18aee9c1808dd6e79afb",
      "parents": [
        "9b52a2184e99565bcd7f77effb321c95a2a4837e",
        "6f95f461098d5b9e93212cf9cc7c7a6498eecf3a"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Sat Dec 12 15:38:29 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 12 15:38:29 2009 -0800"
      },
      "message": "am 6f95f461: Fix the dependencies to make online-sdk-docs.\n\nMerge commit \u00276f95f461098d5b9e93212cf9cc7c7a6498eecf3a\u0027 into eclair\n\n* commit \u00276f95f461098d5b9e93212cf9cc7c7a6498eecf3a\u0027:\n  Fix the dependencies to make online-sdk-docs.\n"
    },
    {
      "commit": "05bbeb356286bfb6ddc26ac546cce03334e346dd",
      "tree": "467fac43439cb51a094df2ebcac20a6b53d99752",
      "parents": [
        "024726391ad1536c5fa4af3f786141e200efed54",
        "7eb6ec1f44ade4c7bf3d23cbcfe29a17bbd940b1"
      ],
      "author": {
        "name": "Roman Nurik",
        "email": "romannurik@google.com",
        "time": "Thu Dec 10 19:48:47 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 19:48:47 2009 -0800"
      },
      "message": "am 7eb6ec1f: Merge change I18305fec into eclair\n\nMerge commit \u00277eb6ec1f44ade4c7bf3d23cbcfe29a17bbd940b1\u0027 into eclair-mr2\n\n* commit \u00277eb6ec1f44ade4c7bf3d23cbcfe29a17bbd940b1\u0027:\n  Add ContactManager, MultiResolution, Wiktionary, and WiktionarySimple to samples index. Also add latest samples zip file.\n"
    },
    {
      "commit": "6f95f461098d5b9e93212cf9cc7c7a6498eecf3a",
      "tree": "f2cec9021ae7225294b98d137f6f9e405738d0d0",
      "parents": [
        "5e7f1fbe161d7015dde6e893351238749f906c8a"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Dec 10 17:08:14 2009 -0800"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Dec 10 17:08:14 2009 -0800"
      },
      "message": "Fix the dependencies to make online-sdk-docs.\n\nWithout the framework library, \u0027make online-sdk-docs\u0027 can not find symbols\n in the framework library.\n"
    },
    {
      "commit": "0e71bdc6acd581d653062dd15a9b772eaee10231",
      "tree": "a5949e2fa0e5d0c829352b43ae192432d954596d",
      "parents": [
        "b9b45a5e26ed020a39a507a173d9f29e336cf989"
      ],
      "author": {
        "name": "Roman Nurik",
        "email": "romannurik@google.com",
        "time": "Thu Dec 10 09:42:51 2009 -0800"
      },
      "committer": {
        "name": "Roman Nurik",
        "email": "romannurik@google.com",
        "time": "Thu Dec 10 11:45:33 2009 -0800"
      },
      "message": "Add ContactManager, MultiResolution, Wiktionary, and WiktionarySimple to samples index. Also add latest samples zip file.\n"
    },
    {
      "commit": "45e6dbf90b24543c90f8c6b0426e9b70c934838d",
      "tree": "645dece47051095766ea132e60eb4926974bfa77",
      "parents": [
        "c7f7c94034ea0708161af9f718678c70b13c9a8d"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Dec 08 12:47:12 2009 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Dec 09 13:30:07 2009 -0800"
      },
      "message": "move event log tags used by SyncAdapter into a local .logtags file\n"
    },
    {
      "commit": "e08361d7fda2234f447f4ffb7f480d045f8c5f78",
      "tree": "856edc394c1f01dda2a5c4407684745e778a8ea1",
      "parents": [
        "8d670d345893fb9b9566f6b8c20202b77d4d211a",
        "5d0806c9c3e0e6c8673ac4238f8ec2e0f82ad7e6"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Dec 03 16:13:19 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 03 16:13:19 2009 -0800"
      },
      "message": "am 5d0806c9: Merge change Ia70bd8c4 into eclair\n\nMerge commit \u00275d0806c9c3e0e6c8673ac4238f8ec2e0f82ad7e6\u0027 into eclair-mr2\n\n* commit \u00275d0806c9c3e0e6c8673ac4238f8ec2e0f82ad7e6\u0027:\n  add BluetoothChat sample app to the dev guide\n"
    },
    {
      "commit": "14a704295ffd4a530364ad37976bebd4f287cadf",
      "tree": "37a84b862405a3a277c7150f211b15afc92d809c",
      "parents": [
        "9fb53a9cb91ffd807ac0f4ca145b3e508ac66111"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Dec 02 15:42:30 2009 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Dec 03 15:42:50 2009 -0800"
      },
      "message": "add BluetoothChat sample app to the dev guide\n"
    },
    {
      "commit": "3a32213c4029a03fe39486f3d6ebd0ea18928ee1",
      "tree": "261ab976911438a818b190771e49cd649d72de2f",
      "parents": [
        "f90b1261a53bc0bfc772337551eb4c540022cd22"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Nov 24 00:30:52 2009 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Nov 25 12:54:58 2009 -0500"
      },
      "message": "Remove HardwareService and move vibrator support to VibratorService.\n\nThe lights support is only needed by PowerManagerService and NotificationManagerService, so we do not need a Binder API for it.\nMove backlight and notification light support to new LightsService class.\nThe camera flash is now handled directly by the camera HAL, so the flash Hardware service flash support is obsolete.\n\nChange-Id: I086d681f54668e7f7de3e8b90df3de19d59833c5\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2464acc6da6393f0163894094468f68b8e496cea",
      "tree": "c20762f1c00066b974b719c8361cce85f17a81c7",
      "parents": [
        "82d4b5ccaf5518ed9286d89e60ac9a595239ac35"
      ],
      "author": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Nov 24 09:47:01 2009 -0800"
      },
      "committer": {
        "name": "Fred Quintana",
        "email": "fredq@google.com",
        "time": "Tue Nov 24 10:42:00 2009 -0800"
      },
      "message": "moved the gdata library to vendor/google\n"
    },
    {
      "commit": "e0030418fd4b9a9a2d0422a5538a76ca6b40710c",
      "tree": "dd8d08001d1e06896ff3ee1b25a2200c226a0578",
      "parents": [
        "b2796da2ed4d0ef3bd94e187156c3d21e7e2a07f",
        "bca9f1bbb31cf05ba17af049a5ea37f57981f00e"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Nov 23 13:55:50 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 23 13:55:50 2009 -0800"
      },
      "message": "am bca9f1bb: sdk doc change for esr: updates for android 1.6 r2, tools r4, api levels.\n\nMerge commit \u0027bca9f1bbb31cf05ba17af049a5ea37f57981f00e\u0027 into eclair-mr2\n\n* commit \u0027bca9f1bbb31cf05ba17af049a5ea37f57981f00e\u0027:\n  sdk doc change for esr: updates for android 1.6 r2, tools r4, api levels.\n"
    },
    {
      "commit": "bca9f1bbb31cf05ba17af049a5ea37f57981f00e",
      "tree": "fb6ee0185759c2290e02862d4eb2250b531d7dc7",
      "parents": [
        "0d631b9b58db54bee58da717b38b8020bc3d0437"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Wed Nov 18 23:06:16 2009 -0800"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Mon Nov 23 13:23:46 2009 -0800"
      },
      "message": "sdk doc change for esr: updates for android 1.6 r2, tools r4, api levels.\n\nBug: 2160782\nChange-Id: Ia576dc9b2312d89bbe194d94640c3cc79216067b\n"
    },
    {
      "commit": "98c11248becafa61d29aea8a7e10adf418a6c197",
      "tree": "1218affe09d77495e5f67d649e53746e1148f4fa",
      "parents": [
        "e5683369d2f3cbda3e6c09c66b4d6df77c9b3c0a",
        "3fa1cb059e76d8b83634a4117a7b2ceca438ae7e"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Nov 23 13:09:17 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 23 13:09:17 2009 -0800"
      },
      "message": "am 3fa1cb05: am 5e7f1fbe: Merge change Id2ee762d into eclair-sdk\n\nMerge commit \u00273fa1cb059e76d8b83634a4117a7b2ceca438ae7e\u0027 into eclair-mr2\n\n* commit \u00273fa1cb059e76d8b83634a4117a7b2ceca438ae7e\u0027:\n  droiddoc change: add flag to offline docs build to signal\n"
    },
    {
      "commit": "3fa1cb059e76d8b83634a4117a7b2ceca438ae7e",
      "tree": "51ae771553f35c9ce951e61d299d1cd763ef54f2",
      "parents": [
        "9854deae10aaf39999a95e440ee3dec939d47179",
        "5e7f1fbe161d7015dde6e893351238749f906c8a"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Mon Nov 23 13:04:27 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 23 13:04:27 2009 -0800"
      },
      "message": "am 5e7f1fbe: Merge change Id2ee762d into eclair-sdk\n\nMerge commit \u00275e7f1fbe161d7015dde6e893351238749f906c8a\u0027 into eclair\n\n* commit \u00275e7f1fbe161d7015dde6e893351238749f906c8a\u0027:\n  droiddoc change: add flag to offline docs build to signal\n"
    },
    {
      "commit": "021694657b1d9c77ced7f41ebef7af77d829fcbb",
      "tree": "88c796e3c9eee4a85d1d4f8030ad573ef55d11af",
      "parents": [
        "820a4e7dd6adeff162a92ca40ebe2f109561036b"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 20 10:44:21 2009 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 20 10:44:21 2009 -0800"
      },
      "message": "droiddoc change: add flag to offline docs build to signal\nthat we\u0027re building offline docs so that we do not generate\nall of the web pages for the sample apps source code.\n\nThis depends on change 33762 (sha I06c40454), meaning, this\nwill break the build without that.\n\nChange-Id: Id2ee762de13f23c3da15d55e763c1838b11ac31c\n"
    },
    {
      "commit": "0bbb68fe290e1c2e4b9c5722fc2dbbd29fc4e336",
      "tree": "ee9c07bc991cef868857b181223fe0ca047eee90",
      "parents": [
        "cb5966426a51aeb7d02e7f859512d20e084e03ed",
        "2a6a149fc2abfb8ef654ed36ce4524209f5e33bc"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 20 10:00:55 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 20 10:00:55 2009 -0800"
      },
      "message": "am 2a6a149f: am 820a4e7d: docs change for ESD: add samples html pages for offline docs\n\nMerge commit \u00272a6a149fc2abfb8ef654ed36ce4524209f5e33bc\u0027 into eclair-mr2\n\n* commit \u00272a6a149fc2abfb8ef654ed36ce4524209f5e33bc\u0027:\n  docs change for ESD: add samples html pages for offline docs\n"
    },
    {
      "commit": "2a6a149fc2abfb8ef654ed36ce4524209f5e33bc",
      "tree": "ee1ce3c60d37783f720a02109f9138f578f4958a",
      "parents": [
        "e16113998bb10f39ee1384bfc497aceeeb193440",
        "820a4e7dd6adeff162a92ca40ebe2f109561036b"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Fri Nov 20 09:54:52 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 20 09:54:52 2009 -0800"
      },
      "message": "am 820a4e7d: docs change for ESD: add samples html pages for offline docs\n\nMerge commit \u0027820a4e7dd6adeff162a92ca40ebe2f109561036b\u0027 into eclair\n\n* commit \u0027820a4e7dd6adeff162a92ca40ebe2f109561036b\u0027:\n  docs change for ESD: add samples html pages for offline docs\n"
    },
    {
      "commit": "820a4e7dd6adeff162a92ca40ebe2f109561036b",
      "tree": "ec68893b6828cb831e6aa14c7d06e636842d9acc",
      "parents": [
        "6d95fc0a2ca910212a43c4547c0ef000659b72dc"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Nov 19 20:19:49 2009 -0800"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Thu Nov 19 20:31:57 2009 -0800"
      },
      "message": "docs change for ESD: add samples html pages for offline docs\n\nbug: 2160782\nChange-Id: I30fedc9e9b015ad035fa954ca0b1a19e846cca78\n"
    },
    {
      "commit": "cc342e33655dcb396f96d28732efe8f189c34253",
      "tree": "60ad57b7dd60d8d7c62e1e6d43881d810e6652ed",
      "parents": [
        "b9386ed929b72308cbfc68d2833a13aeda38f431"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 14:41:14 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 15:08:18 2009 -0800"
      },
      "message": "Solve the mutual interdependency problem between common and framework:\nHave framework include the common source files directly when building,\nthen build common as a static library separately (depending on\nframework, like everything else).\n\nGoes with a companion change to build/core/pathmap.mk.\n"
    },
    {
      "commit": "ded0e6447ed6e0f200dbca13e43c6cf4efc16a1d",
      "tree": "a9fa405cf73e77232588e6e35b9485f6e7170d67",
      "parents": [
        "a4fa107f97933a81c42ee3cd9ca3984c08e5ab25"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 11:23:45 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Nov 18 12:05:04 2009 -0800"
      },
      "message": "Create android-common static library which gets included in frameworks.jar,\nbut can also be used by unbundled apps.  Move android.text.util.Regex there as\na starting example, renamed to a more sensible (?) com.android.common.Patterns.\nSet up a corresponding test package, and move RegexTest (to PatternsTest).\nUpdate clients.\n"
    },
    {
      "commit": "0629175f506f65d2d152eb4eb8ca58df14b6f8b1",
      "tree": "d02e48831e89c6a93709fb845ce7713d5be822c6",
      "parents": [
        "3d40df335e4c0df972720271a84277077f168f65"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Nov 17 21:06:45 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Nov 17 21:06:45 2009 -0800"
      },
      "message": "Remove googleclient from the framework, and its classes from the preload list.\n"
    },
    {
      "commit": "613438086cb68a4e0f48ddd51238f3d9a054ac9d",
      "tree": "5207db36644458bf7059c00c0a7b07a10e21f15e",
      "parents": [
        "5da824210ee34f051c295c12f6bcc4b617da4a1a"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Nov 13 17:14:26 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Nov 13 17:14:26 2009 -0800"
      },
      "message": "Remove external/protobuf from the build, now that it\u0027s\nbeen moved to vendor/google/libraries.\n"
    },
    {
      "commit": "f18a01c77e78209b74e34d05cfb352fa4a92db5f",
      "tree": "a4086ca63d93b972e60dbd1d17fcc00c1f181d9d",
      "parents": [
        "897a744bb7a95b2d3883004301b8e877cd5efc92"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Nov 12 11:32:50 2009 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Nov 12 13:58:27 2009 -0800"
      },
      "message": "Rename [I]DropBox[Service] to [I]DropBoxManager[Service].\n\nUn-hide the DropBoxManager interface, and update the public API accordingly.\n"
    },
    {
      "commit": "8cf6a2eacfe5c255049cbba53bbbfb01ec4a1d9d",
      "tree": "0daef2ec73313f34324243f367a2abc2a2d27de0",
      "parents": [
        "e772eb7af049b55c89241fae799569030c1f5570",
        "61b01632915181fcf725dc4933cad8c81e700115"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Nov 04 17:37:07 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 04 17:37:07 2009 -0800"
      },
      "message": "am 61b01632: Merge change I9490271c into eclair\n\nMerge commit \u002761b01632915181fcf725dc4933cad8c81e700115\u0027 into eclair-mr2\n\n* commit \u002761b01632915181fcf725dc4933cad8c81e700115\u0027:\n  Add BluetoothDevice to SDK AIDL list.\n"
    },
    {
      "commit": "459ba8639a8d1a9b0fb7ff4ada68bf1fe262eaaa",
      "tree": "e23756803026b59c4cd0bb191fae76a3f092cebb",
      "parents": [
        "7ed0ceeba54712f76e9a4f2dd4c9197d76813488"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Nov 04 17:23:55 2009 -0800"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Nov 04 17:24:46 2009 -0800"
      },
      "message": "Add BluetoothDevice to SDK AIDL list.\n\nBug: 2216702\nChange-Id: I9490271ce4be465d5b3acc5e530feaf6e2fa3f57\n"
    },
    {
      "commit": "b9cc041eb0ec10a75973025cacd9a3316090a13d",
      "tree": "51b5962b28b074991876bba249048c3d8f752cff",
      "parents": [
        "671c61d66f8d556f206d167d0f3c3bbe037ed86b"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Oct 27 11:00:30 2009 -0700"
      },
      "committer": {
        "name": "Xavier Ducrohet",
        "email": "xav@android.com",
        "time": "Wed Nov 04 16:04:26 2009 -0800"
      },
      "message": "Explicitly specify that online-sdk depends on framework-res. (do not merge)\n\nthis is integrated from Eclair to fix the mac build breakages.\n"
    },
    {
      "commit": "102767cd3be39fd3865be02421fd1763f3ff33d5",
      "tree": "c1151063f14372fba3a8b4bf748553deae6056c1",
      "parents": [
        "0b12dc3acaa5e6b2b0ac05374faf65a7e212ae4f",
        "d85c4b346fe8e335a979b8bbfd2767eae91aca35"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu Oct 29 01:23:58 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 29 01:23:58 2009 -0700"
      },
      "message": "am d85c4b34: Merge change Idb328ab7 into eclair\n\nMerge commit \u0027d85c4b346fe8e335a979b8bbfd2767eae91aca35\u0027 into eclair-mr2\n\n* commit \u0027d85c4b346fe8e335a979b8bbfd2767eae91aca35\u0027:\n  Explicitly specify that online-sdk depends on framework-res.\n"
    },
    {
      "commit": "952402704a175ba27f6c89dff1ada634c5ce5626",
      "tree": "1be9899a913321a19e8b23b7c1badb35adf50be0",
      "parents": [
        "10d32a338d5400786e784a0d6f51b53acea76b44"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Oct 27 18:23:39 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Oct 28 15:49:11 2009 -0700"
      },
      "message": "Instead of a raw AIDL interface, give DropBox a Java\ninterface (android.os.DropBox); move the Binder interface\nbehind the scenes.  Make DropBoxEntry into DropBox.Entry.\nMake it possible to get a dropbox from an (Application)Context\nwith the usual getSystemService(DROPBOX_SERVICE) type thing.\nUpdate the tests accordingly.\n"
    },
    {
      "commit": "db328ab7d47931a6433a778314bc7adbbfb96c8f",
      "tree": "193cdb52ee7de49ff635f5e4b951e17b5cbf17b2",
      "parents": [
        "54620b1a77e51b3fa531dbd099bd69c39d7d0029"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Oct 27 11:00:30 2009 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Oct 27 11:00:30 2009 -0700"
      },
      "message": "Explicitly specify that online-sdk depends on framework-res.\n"
    },
    {
      "commit": "f0d9c0000858f3e48bcd1efec75f2dff1cbc6ed5",
      "tree": "e4dd6c61a36f7b69f6e0993e4cbbf14bb5239ee2",
      "parents": [
        "f3971747506ca9055e7b5c42a809ac12f8c26ad3",
        "86dc4d312216be0b4c2847a1e79d94efaf4b9559"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 22 18:30:17 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 22 18:30:17 2009 -0700"
      },
      "message": "am 86dc4d31: am 61c29c29: Merge change Ieeb0b251 into eclair-sdk\n\nMerge commit \u002786dc4d312216be0b4c2847a1e79d94efaf4b9559\u0027 into eclair-mr2\n\n* commit \u002786dc4d312216be0b4c2847a1e79d94efaf4b9559\u0027:\n  doc change: incorporate comments on SDK docs and structure.\n"
    },
    {
      "commit": "eeb0b2514a8b4f175a9ef16a319437a61aedb8f3",
      "tree": "4713456d023c8e28e3ac8e0c0c932828dcd33683",
      "parents": [
        "ee58d1bf9c54eaed623c4419e1d9db269a9c4137"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 22 16:08:32 2009 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 22 17:35:02 2009 -0700"
      },
      "message": "doc change: incorporate comments on SDK docs and structure.\n\nBug: 2160782\n"
    },
    {
      "commit": "96f225afad61ee701dd84348e380a40ff8900fc0",
      "tree": "961a0ce43cb480c34a9065aa8bebc4c4ba69a851",
      "parents": [
        "207fadf6e7e99004ecfa4831e71ebcac9ecaa693",
        "4f82394af6486e1725ae6b6dd3b0334dcfc52747"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 22 13:31:25 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 22 13:31:25 2009 -0700"
      },
      "message": "am 4f82394a: am ee58d1bf: doc change: Add docs for SDK. Support new modular structure. In Android.mk, change @since level identifier to 5.xml, expose adt downloadable vars. Fix links that pointed to @sdkCurrent.\n\nMerge commit \u00274f82394af6486e1725ae6b6dd3b0334dcfc52747\u0027 into eclair-mr2\n\n* commit \u00274f82394af6486e1725ae6b6dd3b0334dcfc52747\u0027:\n  doc change: Add docs for SDK. Support new modular structure. In Android.mk, change @since level identifier to 5.xml, expose adt downloadable vars. Fix links that pointed to @sdkCurrent.\n"
    },
    {
      "commit": "ee58d1bf9c54eaed623c4419e1d9db269a9c4137",
      "tree": "76dd7cec7266833966dfdd9d305790a0f6f224c2",
      "parents": [
        "6797b9fa06b4c86b92da117a7f84277f7a380820"
      ],
      "author": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Fri Oct 16 15:25:15 2009 -0700"
      },
      "committer": {
        "name": "Dirk Dougherty",
        "email": "ddougherty@google.com",
        "time": "Thu Oct 22 00:59:47 2009 -0700"
      },
      "message": "doc change: Add docs for SDK. Support new modular structure. In Android.mk, change @since level identifier to 5.xml, expose adt downloadable vars. Fix links that pointed to @sdkCurrent.\n\nChange-Id:I368345755dd753b1056fb06ff25e4b32f3020e4d\nBug:2160782\n"
    },
    {
      "commit": "f18b9311e8a6c4b05574727ae117338a9c341a1b",
      "tree": "44198b24f5e853903cd22e8e25b4e0056ef97735",
      "parents": [
        "e54ebd8c4f589a0a4a257a8d79b288dda67f3f8c",
        "30a6657ec6051ba5a1c72a714c9dc535dff127a4"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Oct 14 18:02:32 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 18:02:32 2009 -0700"
      },
      "message": "am 30a6657e: Merge change Ic9b31801 into eclair\n\nMerge commit \u002730a6657ec6051ba5a1c72a714c9dc535dff127a4\u0027 into eclair-mr2\n\n* commit \u002730a6657ec6051ba5a1c72a714c9dc535dff127a4\u0027:\n  docs: setup new SDK documentation for 2.0 and change sdk build version to 2.0...\n"
    },
    {
      "commit": "efd83af0a7f1041f22567c1ef8135e9b13bb77cb",
      "tree": "c10b6b007d96f43484d28532394734540de75cdc",
      "parents": [
        "8c471d1def1027d025528b419cc8a1cdb68a4489"
      ],
      "author": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Oct 14 09:11:41 2009 -0700"
      },
      "committer": {
        "name": "Scott Main",
        "email": "smain@google.com",
        "time": "Wed Oct 14 17:44:13 2009 -0700"
      },
      "message": "docs: setup new SDK documentation for 2.0 and change sdk build version to 2.0...\nmove upgrading doc into a new guide for \"updating\" with\nthe new manager tools and remove the previous updating doc\nfrom the dev guide. set up preliminary download page and guide\nfor installing the full SDK. add the requirements doc in sdk/\nfor all general purposes. revise the download \u0027thank you\u0027\nmessage.\n\nbug: 2160782\n"
    },
    {
      "commit": "4410ec8f7cec6ab05a8c24c04fe2d5ed5d1e18df",
      "tree": "a70b2976839648cd331ec50af5fd997a09623927",
      "parents": [
        "332c793432be71d40473fed803123165c57197cd"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Fri Sep 11 16:40:01 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Tue Oct 13 17:36:19 2009 -0700"
      },
      "message": "Framework-side DropBox service that maintains a size-bounded\nqueue of data chunks (sort of a blob-oriented logcat).\n\nIn the future, this will be coupled with a revised checkin service that\nwould actually upload this data.\n"
    },
    {
      "commit": "16fb88a673c41b93c5d57ccb28c2697e7d87701a",
      "tree": "f6c32d70ca192de4fd6608c931b501263de2766b",
      "parents": [
        "64dd5be583bab8218e54068bbf70edc5fc6087c8"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Oct 07 07:44:03 2009 +0200"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Wed Oct 07 23:25:24 2009 +0200"
      },
      "message": "Encourage developers to connect RFCOMM by UUID instead of Channel.\n\nHide createRfcommSocket(int channel)\nAdd createRfcommSocketWithServiceRecord(UUID uuid)\n\nRename listenUsingRfcomm(String,UUID) -\u003e listenUsingRfcommWithServiceRecord(..)\n\nNow we have a complete API for developers to make peer-peer RFCOMM connections\nwith hard-coding the limited (30) RFCOMM channels, instead using SDP lookup\nof an UUID.\n\nThis commit addresses two serious bugs:\n- Do not throw IOException on accepting an incoming RFCOMM connection with\n  BluetoothSocket. This was a regression from commit 24bb9b8af4ff6915\n- Workaround failure of bluez to update SDP cache when channel changes by\n  trying to use the same RFCOMM channel on the server every time, instead\n  of picking server channels randomly. This is a pretty ugly workaround,\n  and we are still trying to fix the caching issue - but with this\n  workaround we are at least shippable and apps will work at least until\n  they start colliding on the 30 RFCOMM channels.\n\nDrNo: eastham\nBug: 2158900\nJoke: What did the digital watch say to his mom? \"Look mom no hands.\"\nChange-Id: Ia4879943b83afac06b6f1a3f2391cf1628afce7d\n"
    },
    {
      "commit": "aef439e6f825c0cb99a2ac08c8207f48b7a9fe10",
      "tree": "69633f84a5a75b185ca8c97c0108a06d71f75ba7",
      "parents": [
        "2dfa6edcd086bb9ce4fbb3b979f3afec93f6cddc"
      ],
      "author": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Sep 28 12:33:17 2009 -0700"
      },
      "committer": {
        "name": "Nick Pelly",
        "email": "npelly@google.com",
        "time": "Mon Sep 28 13:06:22 2009 -0700"
      },
      "message": "Move android.bluetooth.ParcelUuid to android.os.ParcelUuid\n\nChange-Id: I564429d5c5b6a5372b6ff26a53b0d7e518b53631\n"
    }
  ],
  "next": "1cdf932b97223c7a5468620054829c24c65d1212"
}
