)]}'
{
  "log": [
    {
      "commit": "fb606da00cbfc9d2e79a4df6929c3d720f25729f",
      "tree": "315c1da6b35fb6ae8014ec601a10205a40e765ce",
      "parents": [
        "be8af08cf4cf9384b3fa13c853c40d761211ceed"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 18 10:54:36 2010 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Feb 18 15:30:52 2010 -0800"
      },
      "message": "Fixing bug 2453467 - In case of a dead process while disabling Accessibility some processes keep sending AccessibilityEvents\n"
    },
    {
      "commit": "424c61fd0aedb4a6cc8f53f4e417dbf23bf7fb18",
      "tree": "62a0963123d55867a6c6a69f51c8c24acbc8cc86",
      "parents": [
        "c34ebce475a6994f1aa59b8c535ff966c8f59431"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 08:14:01 2010 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 14:17:23 2010 -0800"
      },
      "message": "Fix 2363699 - Make notification shade animate closed when disabled\n\nThe animation was removed to fix 2298803 because if the windowshade\nwas tracking when this happened, it would get stuck.\n"
    },
    {
      "commit": "c34ebce475a6994f1aa59b8c535ff966c8f59431",
      "tree": "0bf3d1e170ca8fae06b8aa1da699a432f0b4400c",
      "parents": [
        "76c22f180ade373ea80a25fd927d559067e21950"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 13:39:41 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 13:59:05 2010 -0800"
      },
      "message": "Make MountService work in the simulator.\n"
    },
    {
      "commit": "d970998b0d489774ad1c5b94b47d233912f00214",
      "tree": "e319422620d535a0c7172fe8616e67cc27cf86b5",
      "parents": [
        "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 18 11:48:48 2010 -0800"
      },
      "message": "framework: storage: Add \u0027force\u0027 option to unmount/destroy storage apis, and update callsites.\n\nAlso adds additional storage unit tests\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "154f7a1cc2d4f0468a7cc8dfa36e837c84cd9f7e",
      "tree": "8b43fca812663d2ad1750128f72d8181fcb3a037",
      "parents": [
        "0a073274d82443e7fbb964f069fed58215641aa8"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Wed Feb 17 11:56:39 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 18 11:43:03 2010 -0800"
      },
      "message": "Show car mode notification in status bar.\n\nThe notification is an ongoing event and can be used to get out of car mode.\n"
    },
    {
      "commit": "6d43ebb8077206da814e9dc251de5ade34c63409",
      "tree": "f8f4977a945151bab5ce919baaf995197d64528d",
      "parents": [
        "6a6588b4acada94fd36908c6bf16bc32c7c0a252",
        "62dbb22bd4878369975492c8a1c234840e418a4f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 11:11:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 11:11:29 2010 -0800"
      },
      "message": "Merge \"Make the simulator boot again.\""
    },
    {
      "commit": "6a6588b4acada94fd36908c6bf16bc32c7c0a252",
      "tree": "15b8f7f8c800a7d76652d5d1883aecf2995f8413",
      "parents": [
        "f59a3c14c1d2ad701a842c1b66fa14e2d022c313",
        "6371a2d31f30b473e91be9cced64a2527c086af1"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Feb 18 11:02:48 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 18 11:02:48 2010 -0800"
      },
      "message": "am 6371a2d3: am ee3bbefd: Merge \"Don\\\u0027t crash the system process when apps give us a bad foreground service notification.\" into eclair\n\nMerge commit \u00276371a2d31f30b473e91be9cced64a2527c086af1\u0027\n\n* commit \u00276371a2d31f30b473e91be9cced64a2527c086af1\u0027:\n  Don\u0027t crash the system process when apps give us a bad foreground service notification.\n"
    },
    {
      "commit": "62dbb22bd4878369975492c8a1c234840e418a4f",
      "tree": "31917f72e7e4e3376896385f29552da12d2fab01",
      "parents": [
        "bcbf564a3f527266693233cacd6728770d1a65fd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 10:56:30 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 18 10:56:30 2010 -0800"
      },
      "message": "Make the simulator boot again.\n"
    },
    {
      "commit": "65e72773914554f57e6afea8b0ddd9428e330e91",
      "tree": "bbc8c1418ad13bc3fade1747213d7fda24113367",
      "parents": [
        "52120865e16854a7f43aba7c4f1909ac41235d47",
        "714cff06939281b27673fbe5edf384af6a72dea6"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 18 10:49:00 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 10:49:00 2010 -0800"
      },
      "message": "Merge \"Fixing bug 2451615 - Accessibility services are started upon system reboot while accessibility is disabled\""
    },
    {
      "commit": "589f37cd275670c117f1b0a7464605a8778a0f35",
      "tree": "15160e3bb6ebcea66141280798f949ccd6604671",
      "parents": [
        "3d4178fe1a3b5a10b55bd245d3c142db8a43f23f",
        "e325392c257a5460de6327420c81729f4e687881"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 10:11:27 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 10:11:27 2010 -0800"
      },
      "message": "Merge \"Add Java hookup to netd interface notifications.\""
    },
    {
      "commit": "3d4178fe1a3b5a10b55bd245d3c142db8a43f23f",
      "tree": "8dbef13a7a59b652ea0cbeb7e054081f69375671",
      "parents": [
        "a6fe26c58ff6810264222212ab3d641a077733e7",
        "6f4f619369630c20b58e70f7f2fdb02622ec19b8"
      ],
      "author": {
        "name": "Eric Rowe",
        "email": "erowe@google.com",
        "time": "Thu Feb 18 09:58:07 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 18 09:58:07 2010 -0800"
      },
      "message": "Merge \"Fix formatting of ANRs.\""
    },
    {
      "commit": "e325392c257a5460de6327420c81729f4e687881",
      "tree": "337267e2678181c5e3353f8a3704f9365d207feb",
      "parents": [
        "2db939bde9a9a1d52d8849e6ff88f6a81504d361"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 09:23:25 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 18 09:23:25 2010 -0800"
      },
      "message": "Add Java hookup to netd interface notifications.\n"
    },
    {
      "commit": "43cc4696bfa7c3839931f3360c9660a9e41050b3",
      "tree": "4d5abf421f7a84d62777d8bcb7b0b6c94a6e8d0e",
      "parents": [
        "eba3bb06a8018bc12510a266cadc267d2163e949"
      ],
      "author": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Thu Feb 18 13:00:16 2010 +0000"
      },
      "committer": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Thu Feb 18 13:00:16 2010 +0000"
      },
      "message": "Don\u0027t return passive location provider unless app has fine permissions.\n"
    },
    {
      "commit": "6371a2d31f30b473e91be9cced64a2527c086af1",
      "tree": "9dafb02ba85a688a3cfaef817f7b5a2c55c2edcc",
      "parents": [
        "ab4835ee0df866a4f7982644742e2b758c50fdd7",
        "ee3bbefd34fd5330ebbc59175a328197ab7526af"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Feb 18 04:52:46 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 18 04:52:46 2010 -0800"
      },
      "message": "am ee3bbefd: Merge \"Don\\\u0027t crash the system process when apps give us a bad foreground service notification.\" into eclair\n\nMerge commit \u0027ee3bbefd34fd5330ebbc59175a328197ab7526af\u0027 into eclair-plus-aosp\n\n* commit \u0027ee3bbefd34fd5330ebbc59175a328197ab7526af\u0027:\n  Don\u0027t crash the system process when apps give us a bad foreground service notification.\n"
    },
    {
      "commit": "34fcf971037f33605e8009946d3acc686819dd6d",
      "tree": "dea746268a6f82e9eb3afb919024c26e7be0b2ee",
      "parents": [
        "5d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 07:45:17 2010 -0500"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Feb 18 07:45:17 2010 -0500"
      },
      "message": "Don\u0027t crash the system process when apps give us a bad foreground service notification.\n"
    },
    {
      "commit": "714cff06939281b27673fbe5edf384af6a72dea6",
      "tree": "803e84e430d6022d9dd5ed730ff4f9aa0c50de33",
      "parents": [
        "fc081668c307b7820c8c63c8cb3146760814454b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 17 19:36:28 2010 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 17 19:36:28 2010 -0800"
      },
      "message": "Fixing bug 2451615 - Accessibility services are started upon system reboot while accessibility is disabled\n"
    },
    {
      "commit": "6f4f619369630c20b58e70f7f2fdb02622ec19b8",
      "tree": "3727a84c878da409ad7c2f7ce88cd8db8d0e7037",
      "parents": [
        "fc081668c307b7820c8c63c8cb3146760814454b"
      ],
      "author": {
        "name": "Eric Rowe",
        "email": "erowe@google.com",
        "time": "Wed Feb 17 18:29:04 2010 -0800"
      },
      "committer": {
        "name": "Eric Rowe",
        "email": "erowe@google.com",
        "time": "Wed Feb 17 18:29:04 2010 -0800"
      },
      "message": "Fix formatting of ANRs.\n\nFix for cases where an extra newline would be added and/or a newline at the end of a line would be ommited.\n"
    },
    {
      "commit": "a4903f254b4711c8fc0ac5f7e3d605f4dce34f35",
      "tree": "e43cd5c8258315768da788f390d230a105920154",
      "parents": [
        "c6a0a9cb67930f7259f3f019e8fba22b07a906bf"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 06:42:23 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 18:36:40 2010 -0500"
      },
      "message": "Add passive location provider.\n\nThe passive location provider allows receiving location updates without\nactually triggering them.  This allows an application to receive location\nupdates that are being generated due to other clients of the location manager.\n\nChange-Id: Ibf7a96b089c56875d4f62d3210252ae8d9f32768\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "1168baae849f03ad655bff74360b286b2f10b4a8",
      "tree": "fb736433e1ba711234775fdc3adb78ce3ca88225",
      "parents": [
        "7951eaa92a962e39ebba0366fdcafc4a0a78cc98"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 17 13:03:40 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Feb 17 14:16:51 2010 -0800"
      },
      "message": "Tone down a non-error log message about lack of ancestral dataset tracking\n\nChange-Id: I2e5e48c9b695d6225016365907fe8edc73ab2c8e\n"
    },
    {
      "commit": "1e84ac51221037b1446baad30e1aae8823e5f5a6",
      "tree": "938de341894bc546e6a06e1596837265809a9208",
      "parents": [
        "fed93779a3e144eaa44012b802feb20d194b3a97"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 16 08:36:54 2010 -0800"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Wed Feb 17 13:05:36 2010 -0800"
      },
      "message": "Fix permission exception thrown on exit car mode.\n\nChanging the status bar behavior requires special permission.\nSince disableCarMode is called out of a context that might not have this\npermission, the calling identity is cleared before changing the status\nbar behavior.\n"
    },
    {
      "commit": "e32c345356469777a722325c07e34e90aecd8022",
      "tree": "be55792bd9bef9b1aca5a6ad78a914a1297d2662",
      "parents": [
        "0f5a434c5467ef300b7bb408d40aa763aecdb19f",
        "bfca3a0056a42bde672c8ade83f13f139149f756"
      ],
      "author": {
        "name": "Mike Cleron",
        "email": "mcleron@google.com",
        "time": "Wed Feb 17 12:00:45 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 12:00:45 2010 -0800"
      },
      "message": "Merge \"Add the automatic handling of night/notnight UI modes.\""
    },
    {
      "commit": "dfac9a643e261896768cd68e8e7476a31c70b345",
      "tree": "e7ac7954559a55b0fd1ca7067eb3b97c4aabc040",
      "parents": [
        "2d9dca100f0a9c493ffe3381f35d4600edd74b19",
        "ef6b22fc04a8d5ab26e13efac8069c097e0da7c9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 10:56:58 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 17 10:56:58 2010 -0800"
      },
      "message": "Merge \"Fix issue #2420412: API review: DeviceAdmin API changes\""
    },
    {
      "commit": "ef6b22fc04a8d5ab26e13efac8069c097e0da7c9",
      "tree": "883f9fde4fdcde9c073ee2b0987c5dd393a00745",
      "parents": [
        "855dd9e074c4dcb9c90deaeff1eb33d6394dd5da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 16 20:38:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Feb 17 10:29:52 2010 -0800"
      },
      "message": "Fix issue #2420412: API review: DeviceAdmin API changes\n\nNote in docs that callbacks are on main thread.\nRename to DeviceAdminReceiver?\nDocument resetPassword is the device\u0027s password.\n\nAlso hide android.R.attr.neverEncrypt.\n"
    },
    {
      "commit": "4086f752e1e3f093396b4eb6c0075dccb0c65983",
      "tree": "e5e00b1814827a41895fdc0278069a32e4351941",
      "parents": [
        "fea87ae1a742c94c50573dcdd50f07e6d56c8015"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 17 09:03:29 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 17 09:05:16 2010 -0800"
      },
      "message": "NativeDaemonConnector: Improve bad list IPC diagnostics\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "a4437fc93a993c7ab326b592d22c05be2f11b543",
      "tree": "78dd3d856d7afc20c90302f46137f9f0539aa62c",
      "parents": [
        "0a05f5dfebc3dc6ee8797cfe59f33faa12d660ba"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 07:40:50 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 17 07:40:50 2010 -0500"
      },
      "message": "Fix null pointer exception in connectivity service broadcast receiver.\n\nChange-Id: I80c7175ffd1a323a02201395ff6092e2ab0fdd1c\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "0902f02e8f0d9d9401fcdec550466051482f8abd",
      "tree": "fe36e8ebf7aaf4cee40ed422e480890cab8700b9",
      "parents": [
        "d998b3cd2420dfcf9e1237234d1aeb6f5c9c4778",
        "6c0afff7f027f14fba97bc937d2a13889927be9a"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Tue Feb 16 22:28:20 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 22:28:20 2010 -0800"
      },
      "message": "Merge \"Detect system-wide safe mode and configure the VM accordingly.\""
    },
    {
      "commit": "2db939bde9a9a1d52d8849e6ff88f6a81504d361",
      "tree": "a463803b43d13617486c1a3493b07be5e60d9913",
      "parents": [
        "8ff97b58692ecc889e013a03eefc0a1f64cc7295",
        "c1b4ce93be60aa09eda5653edc2f6a8ce864526d"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 16 18:07:31 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 18:07:31 2010 -0800"
      },
      "message": "Merge \"MountService: Add API call for getting a list of pids currently using the specified mountpoint\""
    },
    {
      "commit": "c1b4ce93be60aa09eda5653edc2f6a8ce864526d",
      "tree": "b6849f9031ea35d1cfcf64815bac6a91802df748",
      "parents": [
        "e421195d75471629608dd4fcc1ac4cf1ff39e7e7"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 16 17:13:03 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 16 17:13:03 2010 -0800"
      },
      "message": "MountService: Add API call for getting a list of pids currently using the specified mountpoint\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "6a6ce74e5972f189004340af97c77aa7631478ee",
      "tree": "f70406bebb5739410aed93b0daa162d0cac89663",
      "parents": [
        "cff1ae56e88d369021b25bedde500037129c5516",
        "2a091d7aa0c174986387e5d56bf97a87fe075bdb"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 16 17:11:10 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 17:11:10 2010 -0800"
      },
      "message": "Merge \"Update Tethering.\""
    },
    {
      "commit": "cff1ae56e88d369021b25bedde500037129c5516",
      "tree": "189d6cd0d512720025ec0a1d231488f49ddddaf4",
      "parents": [
        "675ee6ac3641e75a1496b06bdbc89fb4f5476647",
        "e28290e21f908b4e917099ff2aa41e3aab9310c2"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Tue Feb 16 16:58:17 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 16:58:17 2010 -0800"
      },
      "message": "Merge \"API CHANGE: expose backup/restore to the SDK\""
    },
    {
      "commit": "2a091d7aa0c174986387e5d56bf97a87fe075bdb",
      "tree": "8f9dd3b79705824d03eeaa65a2f9cbc2d63be26c",
      "parents": [
        "be16be13c6f03e5e94fc442ba6a95e420e1a0fef"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu Feb 11 18:18:40 2010 -0800"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue Feb 16 16:56:09 2010 -0800"
      },
      "message": "Update Tethering.\n\nAdds telephony support, async model, multiple tethered iface suport,\nbetter notifications, device config.\n\nbug:2413855\n"
    },
    {
      "commit": "e28290e21f908b4e917099ff2aa41e3aab9310c2",
      "tree": "870e5fb91e64ea96ece567ab3ccbca6e7a5e5f1b",
      "parents": [
        "bb9a51768d2d9dddbe2394b99a00544a3d144fac"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 15:22:26 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 16 16:23:55 2010 -0800"
      },
      "message": "API CHANGE: expose backup/restore to the SDK\n\nThe core backup/restore classes [BackupManager, BackupAgent, RestoreSession, and\nRestoreObserver] are now published for 3rd party developers, as well as the suite\nof helper classes that exist so far to aid authorship of backup/restore agents.\n\nIn conjunction with the API change, the restore-time automatic data wipe has now\nbeen removed:  applications are responsible for managing the logic of wipe vs\nmerge themselves.  If the app\u0027s agent onRestore() callback throws, the data\nis presumed to be incoherent and a wipe is issued via the Activity Manager;\notherwise, no automatic action is ever taken.\n\nChange-Id: I0b3418b829d4689b58b88be3d9c4ace37a8583a9\n"
    },
    {
      "commit": "044a401292846098e3d40977be1346b6ce7ea327",
      "tree": "aab93d065e0cfa43c864d4dd5537d39ec955b76a",
      "parents": [
        "bb9a51768d2d9dddbe2394b99a00544a3d144fac",
        "679bba339ef6948091180c776d6a284cddd812f5"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 16:08:00 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 16:08:00 2010 -0800"
      },
      "message": "Merge \"Move mount service wrapper calls to PackageHelper\""
    },
    {
      "commit": "6c0afff7f027f14fba97bc937d2a13889927be9a",
      "tree": "290ac7f6b40f7c1626e6f6c26117214e09ec4c1a",
      "parents": [
        "4a2d3b15ecca1f4db1e2c935ff36d19838eb5622"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Sun Feb 14 16:18:56 2010 -0800"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Tue Feb 16 15:12:55 2010 -0800"
      },
      "message": "Detect system-wide safe mode and configure the VM accordingly.\n\nFor the system server process, do the disableJitCompilation/startJitCompilation\ncallbacks depending on whether the system is in safe mode or not.\n\nIn addition, if the system is found to be in safe mode, a flag will be set in\nthe Zygote class which will be used to launch subsequent apps in VM safe mode.\n\nBug: 2267590\n"
    },
    {
      "commit": "679bba339ef6948091180c776d6a284cddd812f5",
      "tree": "03c629b1f8bd427a3917efd3fa9a61c6ee9930e7",
      "parents": [
        "642b7c0f1964389ed0b049df275c7b4daaf35b7a"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 11:52:44 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 15:11:04 2010 -0800"
      },
      "message": "Move mount service wrapper calls to PackageHelper\n\nFix bug related to forward locked apps.\n"
    },
    {
      "commit": "63cfebf2dbe628508cccc10f47754fdacd48c1a0",
      "tree": "86c2e0ebcf229eeeb5d4d966afea4bf7a0667ba6",
      "parents": [
        "be16be13c6f03e5e94fc442ba6a95e420e1a0fef"
      ],
      "author": {
        "name": "Costin Manolache",
        "email": "costin@google.com",
        "time": "Thu Feb 04 16:52:34 2010 -0800"
      },
      "committer": {
        "name": "Costin Manolache",
        "email": "costin@google.com",
        "time": "Tue Feb 16 13:57:52 2010 -0800"
      },
      "message": "Switch from REMOTE_INTENT to the new push messaging, add the required permission.\n"
    },
    {
      "commit": "f8bb2a9ad096071fb7d45c769d031b2e1853317e",
      "tree": "ac6db61749e4e403f3e70356dabecaae4556471f",
      "parents": [
        "58d6a20cfaa55ebe269ac0736999b90c3227b0c1",
        "5d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7"
      ],
      "author": {
        "name": "android-build SharedAccount",
        "email": "android-build@sekiwake.mtv.corp.google.com",
        "time": "Tue Feb 16 12:53:04 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 16 12:53:04 2010 -0800"
      },
      "message": "am 5d72a8dd: cherry pick d60e29009c1049a9776e6630e9489e1ef3f83491\n\nMerge commit \u00275d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7\u0027 into eclair-plus-aosp\n\n* commit \u00275d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7\u0027:\n  cherry pick d60e29009c1049a9776e6630e9489e1ef3f83491\n"
    },
    {
      "commit": "5d72a8dda22cdb0c8e1ded1ca5e5122b0c25bcc7",
      "tree": "d8c7b6971d3394322801d02d7e893d7f1dcbf218",
      "parents": [
        "6b178e472266052b4a9b28b1e4a5cef07f1ebf8b"
      ],
      "author": {
        "name": "android-build SharedAccount",
        "email": "android-build@sekiwake.mtv.corp.google.com",
        "time": "Thu Feb 11 17:09:16 2010 -0800"
      },
      "committer": {
        "name": "Sriram Raman",
        "email": "sriramkraman@google.com",
        "time": "Tue Feb 16 15:45:42 2010 -0500"
      },
      "message": "cherry pick d60e29009c1049a9776e6630e9489e1ef3f83491\n\nRevert \"Add null checks when scanning a package.\"\nThis reverts commit 9e7ac3ba8405f22c11629091449ff35a06b72055.\n"
    },
    {
      "commit": "3619b9abd8470f83ae49bb0e364e67bec9323f5b",
      "tree": "aee7a09222fa2641f2774875d37ce7799a25d434",
      "parents": [
        "62ed7a6d4a20d1efb151315b104805ce445e7346"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Sat Feb 13 10:05:42 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 16 11:06:38 2010 -0800"
      },
      "message": "Fix dumpsys activity service \u003cname\u003e\n\nRefactoring of the dumpsys framework introduced a comparison that\nalways made the action dump all the services.\n\nChange-Id: I1f3ac2bd903e39e2a6e8632e8cbb23a982dfe0c6\n"
    },
    {
      "commit": "5ce7d28a077363b656fecdd1983775aca61e9032",
      "tree": "a2a3def9ce047c3575984ab90a0762fcf7e4bca9",
      "parents": [
        "3d0ff09e35521a97ec1cfe14d57c6868e271fe9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 19:30:02 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 16 10:54:49 2010 -0800"
      },
      "message": "Small oom_adj tweaks.\n\nInclude a proper name for processes that are in the background\nwith running services that have been running for a long time (instead\nof showing them as bg-empty).\n\nBatch together multiple processes into the same background bin when\nthere are significantly more processes than bins.  Arguably this\nshould be smarter and base the binning on the number of background/empty\nprocesses instead of the total count, but this should be good\nenough for now.\n"
    },
    {
      "commit": "642b7c0f1964389ed0b049df275c7b4daaf35b7a",
      "tree": "0aedd2679bb469a8d491d7c59931dbbef1e741d9",
      "parents": [
        "241379081e046803b7f4cf4f07091b9de49abf31",
        "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 16 09:23:51 2010 -0800"
      },
      "message": "Merge \"Include install location preference when installing packages. Changes include Add new remote call in default container service to determine install location. Rename INSTALL_ON_SDCARD Remove recommentAppInstall method Add some additional flags used in remote stubs. Move check for protected apps prior to copy. Unit tests\""
    },
    {
      "commit": "bfca3a0056a42bde672c8ade83f13f139149f756",
      "tree": "7ffae4a3d5593ab780b24934577ca7f941f776ef",
      "parents": [
        "bd27544098a9fd50bf7964f108d656a905216caf"
      ],
      "author": {
        "name": "Bernd Holzhey",
        "email": "googlecar+git@google.com",
        "time": "Wed Feb 10 17:39:51 2010 +0100"
      },
      "committer": {
        "name": "Bernd Holzhey",
        "email": "holzhey@google.com",
        "time": "Tue Feb 16 17:10:39 2010 +0100"
      },
      "message": "Add the automatic handling of night/notnight UI modes.\n\nThe automatic switching between night/notnight is based on the calulcation of\nthe civil twilight of the current location. The location is mainly retrieved\nfrom the NetworkLocationProvider.\n\nAutomatic switching will only be available, when\n1) the device is in UI_MODE_TYPE_CAR\n2) the setting for the UI mode are set to \u0027automatic\u0027\n\nIf mode is set to automatic, the next twilight is caluclated and\nan alarm is set that timestamp. The alarm will trigger a new calculation\nof the twilight and sets the UI_MODE_NIGHT to the appropriate value.\n\n\tmodified:   services/java/com/android/server/DockObserver.java\n\tnew file:   services/java/com/android/server/TwilightCalculator.java\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": "0e9d2af2d60b381ba52d0c25e583b3d2a9906051",
      "tree": "fd8348dea0d0a7ddbc3116c92e2ea506886bc50d",
      "parents": [
        "8fe5571aa46321a97dd6e7470e9df208a0324103"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Mon Jan 25 11:33:03 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Feb 12 23:26:12 2010 -0500"
      },
      "message": "New user interface sound effects:\n\n - Low battery. (http://b/2320026)\n - Dock/undock events.\n - Keyguard lock/unlock events.\n\nNew system settings have been created to turn these on/off\nand to specify the relevant sound files.\n\n[Production notes: The provided low battery sound and dock\nsounds were synthesized; the lock screen sounds are\nprocessed samples of a ballpoint pen click mechanism.]\n\nBug: 2320026\nChange-Id: I374285b0f94f59c7555bb8816580f5a8c802e90d\n"
    },
    {
      "commit": "5b993ce7bc29e43a3215a50ce6ce5d6550d4e5e2",
      "tree": "fc25f9f6adee005c287454a74837f6cbc1a072a0",
      "parents": [
        "70251b1704b9bb81443e7533d365400645dd5eaa"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 09:43:29 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Feb 12 18:50:47 2010 -0800"
      },
      "message": "Include install location preference when installing packages.\nChanges include\nAdd new remote call in default container service to determine\ninstall location.\nRename INSTALL_ON_SDCARD\nRemove recommentAppInstall method\nAdd some additional flags used in remote stubs.\nMove check for protected apps prior to copy.\nUnit tests\n\nDefaultContainerService first parses the file uri(if content uri is specified\nit returns a default install internal only value) and returns\na recommended location. Based on which the temporary id is determined\neither a file name or a container id and the file is copied there.\nThis is then later renamed during install.\nTodo\u0027s light weight parsing of package when determining location since we\njust need the install location attribute only when finding out\nrecomended location. This will also enable to move the check for\nupdated system apps(cannot be on sdcard) prior to copying.\n"
    },
    {
      "commit": "b125dc5599468a09d82751cd76152071ae485afb",
      "tree": "6d7ea46208c30bf1ae9014b70d7f5f50167eaa10",
      "parents": [
        "d382e4bee9c6cf96f97700ebcffcf81465294146"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 15:52:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 17:52:22 2010 -0800"
      },
      "message": "Fix MotionEvent pointer API.\n\nOoops.  The API said that the pointer down and up actions contained\nthe pointer id, but it is actually the index.  Actually it makes\nmuch more sense for it to be the index, and those ACTION_POINTER_1_DOWN\netc. constants were stupid.\n"
    },
    {
      "commit": "a87240c2270e83c3e865ffa1e56f79bfa74daffc",
      "tree": "56185fa9fc74ee9a55e3a35e6f228459a0cff04d",
      "parents": [
        "7f66d6e63dc79709ea308440ec57906980046531"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 12 14:12:34 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Feb 12 15:49:30 2010 -0800"
      },
      "message": "Remove BACKUP_DATA permission and associated checks\n\nAny package can now participate in backup/restore, without requiring any\nmanifest-declared permission.  *Control* of the backup manager is still\nguarded by the BACKUP permission, which is signatureOrSystem.\n\nChange-Id: I116fcfcd4cd255e3c976330da1c4dea7d4faae9d\n"
    },
    {
      "commit": "90d2db3d21d07c2a4b4cbbc558f5ec59d20098c3",
      "tree": "51f9e1bcb1cfbfe18899bdb926c375164f3939f7",
      "parents": [
        "965e37ec88609c36a3c5461ece459a96abb6f7ca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 22:19:06 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Feb 12 13:19:06 2010 -0800"
      },
      "message": "Add Pointer Location to the window manager.\n\nThe window manager now has pointer location built into it.\nViva la touch!\n"
    },
    {
      "commit": "11f7c7e07754515cd732a9f8cdc2d1352db1a3ab",
      "tree": "2e3f70047d612049edfe516602f5ca76e9311fc7",
      "parents": [
        "93c0a0d90c873d5a9a6ee9df30cc6ad68420839a",
        "136b1f927f9d11cb0a9d3202ca3f77471afda556"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Feb 12 10:53:07 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 10:53:07 2010 -0800"
      },
      "message": "Merge \"Fix spurious ANRs involving window shuffling and non-fullscreen activities\""
    },
    {
      "commit": "a0430a1860dc3ee56a09c540ebed4ef0af5ab423",
      "tree": "e82459fa55e0083938cbdcb73c786c6d544a3279",
      "parents": [
        "470969346d7958f859d97d1a136b4ecc11e2a464"
      ],
      "author": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Thu Feb 11 23:35:49 2010 -0500"
      },
      "committer": {
        "name": "Daniel Sandler",
        "email": "dsandler@google.com",
        "time": "Fri Feb 12 01:06:22 2010 -0500"
      },
      "message": "Disable distracting status bar ticker text in car mode.\n\nBug: 2420702\n\nChange-Id: I17ade6355b60da5e77d17f3556c86a4aaf40d173\n"
    },
    {
      "commit": "470969346d7958f859d97d1a136b4ecc11e2a464",
      "tree": "c9c1ec33c9b3dd2463ffa4b7704cd87e1a12ca9c",
      "parents": [
        "b509065a586d11e6800373d0a57f5296428f2d89"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 15:57:09 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 20:02:20 2010 -0800"
      },
      "message": "Add APIs for mapping between new and current package names.\n\nThis will allow Market and others to find out what the \"real\" name\nof a package is, when it is currently running under the old name of\na previously installed version.\n"
    },
    {
      "commit": "136b1f927f9d11cb0a9d3202ca3f77471afda556",
      "tree": "c414b2dd82c19844dae57e475941f66c87c38bbd",
      "parents": [
        "5a4b1d9e63c084998f8be3def945f005f8768937"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 11 17:51:24 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Feb 11 18:07:22 2010 -0800"
      },
      "message": "Fix spurious ANRs involving window shuffling and non-fullscreen activities\n\nForce the event-target bookkeeping to reset when an app explicitly\nacknowledges event receipt.  Furthermore, notify the event dispatcher\nwhenever a new window is created, even if there is nominally an\nexisting event target window.\n\nThese changes in tandem address a subtle race bug in which the event\ndispatcher believes that there is an event recipient that it is still\nwaiting for even when the event in question has been acknowledged;\nthis results in a spurious ANR.  There were checks in the existing code\nthat wound up doing the right thing in the case of windows becoming\nhidden, but the case of non-fullscreen activities floating over them\n[unavailable for input but still visible] exposed the race condition.\n\nBug: 2432828\nChange-Id: I29fb741aace34736b029f9ba43f2c43184366258\n"
    },
    {
      "commit": "315ada7fbb9e967c22e87b4921bec720ceb2c73c",
      "tree": "d40fec8ac540b985027bf2334c9d3e8d5d73d942",
      "parents": [
        "2870552b412cd8186c6605d108b736832b9b82da"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 12:14:08 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 14:36:30 2010 -0800"
      },
      "message": "Get rid of the limit-unlock policy control.\n\nThis is merged with force-lock.  These both allow effectively the same thing,\nso there is no reason to junk up the user experience with them as separate\nentities.\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": "3941411a21b0ccbfb2843dd8c7c7fbe9f8e85abb",
      "tree": "e19dd952cf8c80039bbc8bb5c751d6433ae96222",
      "parents": [
        "777db0c08a1bee45acc2ca3fcc62ef1db6d0e221",
        "1e90ab542d675616e9370ab7e5add99d7af12587"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 11 11:20:40 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 11 11:20:40 2010 -0800"
      },
      "message": "am 1e90ab54: merge from open-source master\n\nMerge commit \u00271e90ab542d675616e9370ab7e5add99d7af12587\u0027\n\n* commit \u00271e90ab542d675616e9370ab7e5add99d7af12587\u0027:\n  Fixs the incorrect message for SecurityException\n  Default RotateDrawable\u0027s pivot set to (50%, 50%)\n"
    },
    {
      "commit": "777db0c08a1bee45acc2ca3fcc62ef1db6d0e221",
      "tree": "bb50d74a72792719b3ae9ecba7ac7bb2b6603539",
      "parents": [
        "6dee18c5cfdd5d63f3a9c299d2b61f819c07e920",
        "d7b92a0ff395fa45d934eaa4242bf2598da88964"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 11:16:36 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 11:16:36 2010 -0800"
      },
      "message": "Merge \"resolved conflicts for merge of 61bb25f2 to master\""
    },
    {
      "commit": "6dee18c5cfdd5d63f3a9c299d2b61f819c07e920",
      "tree": "d30d5cdc3fd085036d80c858db39e8bfc3653aec",
      "parents": [
        "938606083115275bf9d05bfbd4de771aede00091"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 23:59:16 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 11 11:04:49 2010 -0800"
      },
      "message": "New implementation of \u003coriginal-package\u003e tag.\n\nWe now have the new package retain the name of the old package.  This makes\nsure that all existing references to it (shortcuts, widgets, etc) will still\nwork.\n\nThis does mean that your package can run under either the old or new name,\ndepending on whether the user got it with an update.  Buyer beware!\n\nI have tried testing all of the paths of updating, installing another\nupdate in /data, uninstalling the update, updating system with an even\nnewer update, etc.  I think they all work.  No promises though.\n"
    },
    {
      "commit": "c0d71d37233f0aec18433eab3e0d90c48827f1a9",
      "tree": "3fa92e2ab291c759348ea4b0fa4eb69456e6018d",
      "parents": [
        "1ab6d751589c1f16512a64395b67508ac8b8fa94",
        "289e58051dd575cee601c38d6816b9ecd745b505"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:47:41 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 10:47:41 2010 -0800"
      },
      "message": "Merge \"Truncate SYSTEM_TOMBSTONE events at the end (take the head), but still truncate the other log files at the start (take the tail).\""
    },
    {
      "commit": "289e58051dd575cee601c38d6816b9ecd745b505",
      "tree": "c221129770d0d3015fb581fa6b5cb7dcc043b9ef",
      "parents": [
        "18e939623556928f73fcc7511c85a537929a4a7e"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:40:49 2010 -0800"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu Feb 11 10:40:49 2010 -0800"
      },
      "message": "Truncate SYSTEM_TOMBSTONE events at the end (take the head),\nbut still truncate the other log files at the start (take the tail).\n"
    },
    {
      "commit": "d7b92a0ff395fa45d934eaa4242bf2598da88964",
      "tree": "46a4899a3799321bf8472c4818b54e089ced1560",
      "parents": [
        "4e208bd8722ad48c342c0128313ef40971234121",
        "61bb25f2f92af10b685d6bd1452bc5505995c64e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 10:36:10 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 10:38:28 2010 -0800"
      },
      "message": "resolved conflicts for merge of 61bb25f2 to master\n"
    },
    {
      "commit": "1ab6d751589c1f16512a64395b67508ac8b8fa94",
      "tree": "b12a77e9b556a469cdf2d85dbefe21af70e7f84f",
      "parents": [
        "18e939623556928f73fcc7511c85a537929a4a7e",
        "a181b21305e0bcf171e2112a3ca5c08eb4fd2434"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 10:25:59 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 10:25:59 2010 -0800"
      },
      "message": "Merge \"MountService: Fix some mountset bugs and tighten up some return values\""
    },
    {
      "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": "1e90ab542d675616e9370ab7e5add99d7af12587",
      "tree": "ba207d9049c64f2acd4dcf02ba177be38a05a3bb",
      "parents": [
        "61bb25f2f92af10b685d6bd1452bc5505995c64e",
        "27f3de6bac93140452ce131cbbd8c6df33e25a94"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 11 10:03:02 2010 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 11 10:03:02 2010 -0800"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "61bb25f2f92af10b685d6bd1452bc5505995c64e",
      "tree": "e67faae764a32c17d4e4f98050767128755dffd7",
      "parents": [
        "87bdfd6d22ee964339791bb65686a718d207793b",
        "c1eba82ba479006045c1d7a4c8ceba116a9602d1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 09:34:59 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 11 09:34:59 2010 -0800"
      },
      "message": "am c1eba82b: Merge \"Fix issue: 2413494: Add TTY support.\" into eclair\n\nMerge commit \u0027c1eba82ba479006045c1d7a4c8ceba116a9602d1\u0027 into eclair-plus-aosp\n\n* commit \u0027c1eba82ba479006045c1d7a4c8ceba116a9602d1\u0027:\n  Fix issue: 2413494: Add TTY support.\n"
    },
    {
      "commit": "a181b21305e0bcf171e2112a3ca5c08eb4fd2434",
      "tree": "2d710c52e471992a454f7115042f3a8ff79be06d",
      "parents": [
        "2980d10c1a77172556acf7875a2781ffc9881c15"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 06:50:20 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 11 06:50:31 2010 -0800"
      },
      "message": "MountService: Fix some mountset bugs and tighten up some return values\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "b2983510230f49616b81be363707928e526d30a4",
      "tree": "a4583d3b6692215b78efb605d029f107d064e7bd",
      "parents": [
        "49ffc0ff72a29f000b56deb34b0706cbfc5624bf",
        "5f85780db058d3babb435466b33834c3cc70f5c1"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Thu Feb 11 02:00:24 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 02:00:24 2010 -0800"
      },
      "message": "Merge \"Fix NPE in AppWidgetService.addProvidersForPackageLocked()\""
    },
    {
      "commit": "102d05fa9135bef5c6b875f9a6485566b06ebd18",
      "tree": "990ee430142bdc479b532ee524027300aca8a39d",
      "parents": [
        "aa82768b8c6b6e81bb048d2d72b6586eb66b5b5d"
      ],
      "author": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Fri Feb 05 14:47:27 2010 -0800"
      },
      "committer": {
        "name": "Irfan Sheriff",
        "email": "isheriff@google.com",
        "time": "Wed Feb 10 15:22:58 2010 -0800"
      },
      "message": "get DHCP IP on each connection\n\nThe IP state was not being refreshed when the supplicant transitions\nfrom COMPLETED to ASSOCIATED to COMPLETED. This can lead to\na connected state with no real connection due to old IP settings.\nThe fix refreshes IP on each connection.\n\nBug: 2329261\nChange-Id: I38cd56369ee2d8ab3e0f06f5c9f5712b9b2f35a0\n"
    },
    {
      "commit": "5f85780db058d3babb435466b33834c3cc70f5c1",
      "tree": "5e3aaeb217085b8eeec5a0b9299ffd784c158a9a",
      "parents": [
        "e4e82f2782e61658256ecb85066e273c22a37951"
      ],
      "author": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 23:09:48 2010 +0000"
      },
      "committer": {
        "name": "Bjorn Bringert",
        "email": "bringert@android.com",
        "time": "Wed Feb 10 23:09:48 2010 +0000"
      },
      "message": "Fix NPE in AppWidgetService.addProvidersForPackageLocked()\n\nqueryBroadcastReceivers() can return null, so AppWidgetService\nshould guard against that.\n\nFixes http://b/issue?id\u003d2418982\n\nChange-Id: I1ba83c0c37622e0280f3dba2fef5eca2cc90c975\n"
    },
    {
      "commit": "23085b781e145ed684e7270af1d5ced6800b8eff",
      "tree": "43629e3d545d343314af074dc66e63f628d780ff",
      "parents": [
        "60586f2ec65d16d185767fce4311d3ed0e9112ac"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Mon Feb 08 16:06:32 2010 -0800"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@android.com",
        "time": "Wed Feb 10 14:51:31 2010 -0800"
      },
      "message": "Support per-application switch to execute the VM in safe mode.\n\nThe new attribute can be set by adding android:safeMode\u003d\"true\"\nin AndroidManifest.xml with the SDK.\n\nTested with pairing locally compiled SDK with Eclipse and verified that the JIT\n(the only component currently included in the safe mode) is indeed disabled\nwith the new attribute.\n\nBug: 2267583\n"
    },
    {
      "commit": "a7d7f79c4058bdf1508458341bd1c1cd4ff785b9",
      "tree": "db0dfca7ddff76c74e1954530d569fdbec10f854",
      "parents": [
        "2fe23de8e3af6ef9e54c57e981c7d9d0e62e5299"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Feb 09 13:16:02 2010 -0800"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Feb 10 12:16:29 2010 -0800"
      },
      "message": "Adding null check.\n"
    },
    {
      "commit": "7749adfd0184b876ff6f8d1961959ca95ab82244",
      "tree": "16783dbb54fc6bf4fcd0dd7383251ea3606cb175",
      "parents": [
        "859f455645bc49e32330108b1ea9f85ffb80a2cd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 10 11:22:11 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 10 11:23:04 2010 -0800"
      },
      "message": "Fix issue: 2413494: Add TTY support.\n\nThis is a new implementation of TTY support.\nPrevious implementation in commit aead64def1fe58c95c086a0ca00cf0b13fa32ef1 is reverted.\nThe new method does not rely any more on the kernel headset driver to send a UEvent containing\ncurrent TTY mode.\n"
    },
    {
      "commit": "d0efb6bc159b86dfad540aa9dc3e20e1bb56d930",
      "tree": "b699271ba9346af5235100f6a7e6c66e20e61456",
      "parents": [
        "4c48cb72ffc975c2a94473efb529d559aacaff17",
        "4154c07c5cabc74029a2df379075391d782a682c"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 10 11:21:50 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 10 11:21:50 2010 -0800"
      },
      "message": "Merge \"StorageNotification: Move notification / usb storage activity into StatusBarPolicy\""
    },
    {
      "commit": "27f3de6bac93140452ce131cbbd8c6df33e25a94",
      "tree": "c45b812a46c1a674c8b47763fd9e3327ceac3102",
      "parents": [
        "b81b1447d2cfa9dc5bcc02c8a1b7193400a97ab6"
      ],
      "author": {
        "name": "Chander S Pechetty",
        "email": "chanderspechetty@unisaran.com",
        "time": "Wed Feb 10 22:14:00 2010 +0530"
      },
      "committer": {
        "name": "Chander S Pechetty",
        "email": "chanderspechetty@unisaran.com",
        "time": "Wed Feb 10 22:14:00 2010 +0530"
      },
      "message": "Fixs the incorrect message for SecurityException\n\nwhen injecting a Key, Pointer and Trackball events into the UI across\napplications, the corresponding methods throw SecurityException with\nincorrect permission message.\nINJECT EVENT permission should be INJECT_EVENTS\n"
    },
    {
      "commit": "d03ff94fe58045b5bd1dd783fb98026778a4265d",
      "tree": "c35d201ab498f23f075f1c48ce4ce3ce55e9f2e4",
      "parents": [
        "ca35953c9064114cb09181e8bffddb2f7c2d8d53"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Feb 09 08:46:14 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Feb 10 09:41:25 2010 -0500"
      },
      "message": "Clean up interface between LocationManagerService and the location providers:\n\nLocationManagerService now uses new Java interface LocationProviderInterface\nrather than LocationProviderProxy to refer to location providers internally.\n\nLocationProviderProxy and the ILocationProvider binder interface are only\nused for location providers implemented as services (NetworkLocationProvider)\n\nBuilt-in location providers (GpsLocationProvider and mock providers) now just\nimplement LocationProviderInterface rather than using a Binder interface and proxy object.\n\nDelete obsolete and unused TestLocationProvider class.\n\nChange-Id: Id800e7c1864f7c666f8e37125c05896493b9c8c4\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "4154c07c5cabc74029a2df379075391d782a682c",
      "tree": "3d4f10d3e4c065c5c7ec2c3faad072bbf7d1c8b8",
      "parents": [
        "739e1f8cdaee7ad448086f61412d118cb18152c5"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 18:37:54 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 19:33:58 2010 -0800"
      },
      "message": "StorageNotification: Move notification / usb storage activity into StatusBarPolicy\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "739e1f8cdaee7ad448086f61412d118cb18152c5",
      "tree": "0fa259858bc835d739550151e8f77ced37598563",
      "parents": [
        "46d350233328b703455ae10bf3ef724fa6733662",
        "6cdd9c08565a6871ad72cd388adfdfca23532e5e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 19:30:34 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 19:30:34 2010 -0800"
      },
      "message": "Merge \"MountService: Add isSecureContainerMounted() API call\""
    },
    {
      "commit": "6cdd9c08565a6871ad72cd388adfdfca23532e5e",
      "tree": "e8f726d6bf7d7271e1042a00cc0e2746a7c2160b",
      "parents": [
        "a63730d1f103f78589faef461d2af7351fc49f42"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 14:45:20 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 18:46:05 2010 -0800"
      },
      "message": "MountService: Add isSecureContainerMounted() API call\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "add1376cde9cd027df473f84df75edc993001ebe",
      "tree": "80f3ef3e2d79e3a685fe04169a3fb644e5d69035",
      "parents": [
        "b687581d4cf67fe8f25bac4333b513bcba2f3cb2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Feb 03 17:34:58 2010 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Feb 09 18:18:55 2010 -0800"
      },
      "message": "Generate /data/system/packages.list in the PackageManager\n\nThis file contains uid + debugFlag + dataPath information for\neach non-system installed package. It is meant to be used later\nfrom native code and thus needs to be considerably simpler to\nparser than packages.xml.\n\nThe file should only be readable by non-system userIds, and its\nformat is essentially line-based with each line like:\n\n  \u003cpkgName\u003e \u003cuid\u003e \u003cdebugFlag\u003e \u003cdataDir\u003e\n\nWith:\n\n  \u003cpkgName\u003e    as the package name\n  \u003cuid\u003e        as the application-specific user id\n  \u003cdebugFlag\u003e  either 0 or 1. 1 if the package is debuggable\n  \u003cdataDir\u003e    path to the package\u0027s data directory\n\nWe need the debug flag to allow \u0027run-as\u0027 to only allow\ncommands to be executed on debuggable packages, even on\nproduction devices.\n"
    },
    {
      "commit": "46d4525abc4a07a7ac04880acd7a727e1348c997",
      "tree": "5d46846ee003d0e650f9addf8f4909cbde6b3240",
      "parents": [
        "ba637f87367878b1cebaf1b23a62f077e9c8006f"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 09 15:48:57 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Feb 09 15:55:03 2010 -0800"
      },
      "message": "Print the snapshot focus rather than the Window Manager\u0027s actual current focus\nwhen dumping key-timeout information around an ANR.\n\nChange-Id: Ia70a71029663fa134078ea9ab40f0a6a7f3945ea\n"
    },
    {
      "commit": "e83cefcef07f9ac025642c1ffec76b4c7ab39cf2",
      "tree": "130696ee2a90150129c3ee98544c5814528c90f9",
      "parents": [
        "72e5a8820a996c547eacea534b11b6b8f6eca83b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Feb 04 17:38:14 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Feb 09 14:20:55 2010 -0800"
      },
      "message": "New external storage APIs.\n\nThis implements the spec for external storage organization, and\nproperly reflects how the media scanner organizes the files it finds.\n\nAlso includes package manager support for removing app private\nfiles from external storage when the application is uninstalled.\n\nFor the new APIs and paths, the main place to look is Environment\nand Context.\n"
    },
    {
      "commit": "53d0c7f4a032dcb2479294dddae31bb3230e10c8",
      "tree": "2c803a35902c5de0d0651e13a237e793cb006ff8",
      "parents": [
        "44d993798f8241b78229718bbc358046f590de7e",
        "8200b20fe6e68e68264efe133f21ac8df079a563"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Tue Feb 09 14:05:48 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 14:05:48 2010 -0800"
      },
      "message": "Merge \"Change key dispatch timeout logging.\""
    },
    {
      "commit": "59443a673a736978361dc341f41ce4e9dae053a0",
      "tree": "2035b24014a356ad0f39cce16a63d977d2e903d1",
      "parents": [
        "cb72cda8ca3669dfcbe71d1ac6c5e6c264ff5faa"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 13:28:45 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 13:28:45 2010 -0800"
      },
      "message": "MountService: Check for failure to unmount when enabling UMS and fix reversed logic\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\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": "3ee1317173260252d475772fec09d492f8fcfd33",
      "tree": "6534b6ffce66ddfa834f9860c279bf30364b4275",
      "parents": [
        "64e6a45ed45e0d096a1490408ee1cab2a4626950"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 04 20:54:43 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:03:15 2010 -0800"
      },
      "message": "NotificationManagerService: Add a listener for storage events\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "76591176479bf0e57e43af826cb4fde6cd67d539",
      "tree": "b39accf7dc693eae96087c08ed94892791a5eefb",
      "parents": [
        "6bdcc06115c290b0941fa6a19d5b1483d5db9c0a",
        "207e538350665cea00e1aa70b8094beca4a34e45"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:02:44 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 11:02:44 2010 -0800"
      },
      "message": "Merge \"MountService: Harden for pre-boot usage users\""
    },
    {
      "commit": "6bdcc06115c290b0941fa6a19d5b1483d5db9c0a",
      "tree": "dfb0cf292b6045c27d43e19f600188f6560d4c61",
      "parents": [
        "52976f3d6a94390dbf7dcc2f534917803d31bbde",
        "f919cd02dfd40ad1939e429c3f5e7e36538d839e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 11:02:32 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 11:02:32 2010 -0800"
      },
      "message": "Merge \"MountService: Add WARN checks to ASEC calls to catch bad users\""
    },
    {
      "commit": "18457fd41e7b39534e54200c1f2392da3140ec9f",
      "tree": "90ba56994a5f470c2bc1e367778a9625a92427d0",
      "parents": [
        "c8da710f001f149557121b535da0b71d6da87484",
        "1ff4371ef2e27ff51cedd24d093b12043cb72e56"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 08:59:13 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 08:59:13 2010 -0800"
      },
      "message": "Merge \"NativeDaemonConnector: Improve error reporting and debug formatting\""
    },
    {
      "commit": "c8da710f001f149557121b535da0b71d6da87484",
      "tree": "55e7624b55fbaf782fd8afbe1fdd7c41ad5c9318",
      "parents": [
        "ace5a3fbfbf1b41905410925f1ea007040a7a675",
        "1bf3f8be7c01aa77afc114e0728cb041e95640b1"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Tue Feb 09 08:58:23 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 08:58:23 2010 -0800"
      },
      "message": "Merge changes I1aabef01,I8dbd0f83\n\n* changes:\n  SystemServer: Move MountService startup before NotificationManagerService\n  StorageManager: Check for a null MountService\n"
    },
    {
      "commit": "7040ce78666d3307521c6dc6d55c71ea90534a7e",
      "tree": "51691643bd3d2b8c2b920d06a9cad1ffb0a2f3bf",
      "parents": [
        "a90cee8250f228518e7e458c1a4785d1fab5f37f",
        "37a00a36fb69645695b1a165e2fd90cc3eb3e071"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 08 23:55:56 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 08 23:55:56 2010 -0800"
      },
      "message": "resolved conflicts for merge of 37a00a36 to master\n"
    },
    {
      "commit": "628fd6d9c11ed9806abebf34bc986247c106328f",
      "tree": "402876b69159436587770bc8754f6a66d02326ed",
      "parents": [
        "53bd2522ca7767f46646606123b6e2689b811850"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Jan 25 22:46:13 2010 -0500"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Feb 08 23:20:27 2010 -0500"
      },
      "message": "Network Location unbundling:\n\nThe network location and geocode provider services are now started on demand\nand their interfaces are now retrieved via bindService().\n\nRemove obsolete LocationManager installLocationProvider() and installGeocodeProvider() methods.\n\nAdd abstract class android.location.provider.GeocodeProvider to provide a public wrapper to\nthe IGeocodeProvider Binder interface. Replaces the LocationManager.GeocodeProvider interface.\n\nRename LocationProviderImpl to android.location.provider.LocationProvider.\n\nMove LocationManager.reportLocation() to android.location.provider.LocationProvider,\nso all methods related to external location providers are now all in one class.\n\nAvoid calling from the Location Manager Service into providers that are disabled so we\ndo not start the network location service unnecessarily.\n\nChange-Id: If3ed2d5d62b83ba508006711d575cad09f4a0007\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "207e538350665cea00e1aa70b8094beca4a34e45",
      "tree": "4e46f2a94d6233ae26185822e9c1498a4c900fe6",
      "parents": [
        "f919cd02dfd40ad1939e429c3f5e7e36538d839e"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 04 20:46:54 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 08 19:29:58 2010 -0800"
      },
      "message": "MountService: Harden for pre-boot usage users\n\n- Connection to native daemon now happens on creation instead of ON_BOOT\n- Don\u0027t emit share change broadcasts before system is booted\n- Protect against public API usage before we\u0027re ready\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "f919cd02dfd40ad1939e429c3f5e7e36538d839e",
      "tree": "5d011ffeca00b201828e8efcfd205b14217c1f83",
      "parents": [
        "1ff4371ef2e27ff51cedd24d093b12043cb72e56"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 04 15:10:38 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 08 19:29:58 2010 -0800"
      },
      "message": "MountService: Add WARN checks to ASEC calls to catch bad users\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "1ff4371ef2e27ff51cedd24d093b12043cb72e56",
      "tree": "f29f8501194e5b138db5f129b6844573233c0f0a",
      "parents": [
        "1bf3f8be7c01aa77afc114e0728cb041e95640b1"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Thu Feb 04 15:09:02 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 08 19:29:58 2010 -0800"
      },
      "message": "NativeDaemonConnector: Improve error reporting and debug formatting\n\nUpdated:\n  NativeDaemonConnector: Put debugging behind a conditional\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "1bf3f8be7c01aa77afc114e0728cb041e95640b1",
      "tree": "7ab5a3f08ad416cab636063c89a2e30279eee9cb",
      "parents": [
        "17da5a691c72fb3dbab37ce1ae1ed3a376e90c32"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Wed Feb 03 14:43:09 2010 -0800"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Feb 08 19:29:58 2010 -0800"
      },
      "message": "SystemServer: Move MountService startup before NotificationManagerService\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "37a00a36fb69645695b1a165e2fd90cc3eb3e071",
      "tree": "ea929685e84c6585988d69d5cc9f75b943e21196",
      "parents": [
        "ad9bcb22d05fbf130ac64254abd51a137e9a3d3f",
        "08be55b8ea917a5273c135a7bdc73e41c8524c05"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 08 17:27:33 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 08 17:27:33 2010 -0800"
      },
      "message": "am 08be55b8: Add null checks when scanning a package. Delete packages whose code and resource paths haven\\\u0027t been set correctly.\n\nMerge commit \u002708be55b8ea917a5273c135a7bdc73e41c8524c05\u0027 into eclair-plus-aosp\n\n* commit \u002708be55b8ea917a5273c135a7bdc73e41c8524c05\u0027:\n  Add null checks when scanning a package.\n"
    },
    {
      "commit": "08be55b8ea917a5273c135a7bdc73e41c8524c05",
      "tree": "1b985d28eab375f5f2d0b8c930c9feb622507625",
      "parents": [
        "31bfdf695ef741f64066ef605bd6a7e23df88714"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 08 16:30:06 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 08 17:10:24 2010 -0800"
      },
      "message": "Add null checks when scanning a package.\nDelete packages whose code and resource paths haven\u0027t been set\ncorrectly.\n"
    },
    {
      "commit": "b49ceb3b8b17656984fd969d548dc912e7d2c7c1",
      "tree": "1c9a8925a19da9a35ab99e05671a65a1e42b6db3",
      "parents": [
        "ec5df83c5b44ad2f2b28a1a4420c4c4056dd6103"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Feb 08 16:22:24 2010 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Feb 08 16:29:22 2010 -0800"
      },
      "message": "Remember which apps have available restore info in the ancestral dataset\n\nWhen we perform a full-system restore, remember the set of applications which\nhave data available in our ancestral dataset.  This is a key filter for not\nhaving to do a round trip to the [remote] storage backend at app-install time\nunless it is likely to be fruitful.\n\nChange-Id: I7c77b490c560c581888d84f02f258b2e2d73bc69\n"
    },
    {
      "commit": "b56ae20b22fd7283df32072a431ab6d4965f3c1b",
      "tree": "c26e5e7bf6433dfbe500917fc7001f77c331c4f2",
      "parents": [
        "836a1f2cb99600c26a1a928a9e3240b9dec3079b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu Feb 04 22:51:07 2010 -0800"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon Feb 08 14:52:25 2010 -0800"
      },
      "message": "Rename media resource broadcasts\nAdd checks for fwdlocked and updated system apps\nadd more tests\nremove duplicate adds\n"
    },
    {
      "commit": "8200b20fe6e68e68264efe133f21ac8df079a563",
      "tree": "39552854e8ef8fac4d773c844d4b5ee2f837403a",
      "parents": [
        "5a84386ae3a5935a91c628a3e1084a71aa95850a"
      ],
      "author": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Thu Feb 04 13:34:37 2010 -0800"
      },
      "committer": {
        "name": "Ken Shirriff",
        "email": "kens@google.com",
        "time": "Mon Feb 08 11:09:17 2010 -0800"
      },
      "message": "Change key dispatch timeout logging.\n\nThe mToken logging seems redundant and confusing.\nClarify what sending to \u003cnull\u003e means.\nClarify what dispatch state and current state mean.\n"
    },
    {
      "commit": "cb14ec1305fac1b52e00414237d56fc8117a34ad",
      "tree": "a79716632d592876d4250f7b48709a4569e9f910",
      "parents": [
        "1688d312e5ce05e17aceffa00d1e996c89e6b5b0",
        "c61da3136b1ffce9152f54ff19cab2782cb8450b"
      ],
      "author": {
        "name": "Chris Tate",
        "email": "ctate@android.com",
        "time": "Fri Feb 05 12:38:51 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 12:38:51 2010 -0800"
      },
      "message": "Merge \"Don\u0027t hold the backup queue lock across a backup operation\""
    }
  ],
  "next": "1688d312e5ce05e17aceffa00d1e996c89e6b5b0"
}
