)]}'
{
  "log": [
    {
      "commit": "d5ac1ae36b4e096eb97984334f86d0c68abea2f7",
      "tree": "0e9c8b664eee7bce22f49a17dab4993292c17e1d",
      "parents": [
        "b099c4699b8d32295caa7b59637657d47a7c7486"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue May 05 22:26:12 2009 -0700"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Tue Jun 09 17:21:08 2009 -0700"
      },
      "message": "Framework changes for bluez4.\n\nChanges in the Bluetooth JNI calls and framework functions\nfor Bluez4.\n"
    },
    {
      "commit": "a92f6964077e5a5bdb9e51b8abfdd08e69ab733c",
      "tree": "2c9ba163535254c84e2470f147139d7ba6ba6390",
      "parents": [
        "5f1336d0b59ac5cfa90e62a86f6caa685e961fac",
        "d2d058b7d657e73255c3665c8b2f63845a8d25d0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 08 16:42:21 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 08 16:42:21 2009 -0700"
      },
      "message": "am d2d058b7: Merge change 3506 into donut\n\nMerge commit \u0027d2d058b7d657e73255c3665c8b2f63845a8d25d0\u0027\n\n* commit \u0027d2d058b7d657e73255c3665c8b2f63845a8d25d0\u0027:\n  Revamp IRestoreSession a bit\n"
    },
    {
      "commit": "9b3905c4a25f2d785ce7535d1f2e1540b46bb561",
      "tree": "5a83d5f1c545317b3a087c2181b36f03f60cd790",
      "parents": [
        "b2df1699c996e62baa78877978cd2c5607ea4194"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 08 15:24:01 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 08 16:01:24 2009 -0700"
      },
      "message": "Revamp IRestoreSession a bit\n\nWe now supply an array of RestoreSet objects instead of wacky Bundle\nshenanigans.  Also, pushed beginRestoreSession() out to the BackupManager\nconcrete interface class so that SetupWizard can use it.\n\n(beginRestoreSession() is @hide, non-privileged apps cannot use it.  It\u0027s\nalso guarded by android.permission.BACKUP enforcement.)\n"
    },
    {
      "commit": "40dabea7d8d0653d7deea288e3bae8247f34c21a",
      "tree": "71b69f6d743e41a2cbdc6349812ba3e5ab1836c4",
      "parents": [
        "bd235f10a9873c1f94cd44519c1e0cd118c5a8ab",
        "9d9953d94de4d17722ba2c768b92bd4ebeec908c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 07 21:04:43 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun Jun 07 21:04:43 2009 -0700"
      },
      "message": "am 9d9953d9: Merge change 3420 into donut\n\nMerge commit \u00279d9953d94de4d17722ba2c768b92bd4ebeec908c\u0027\n\n* commit \u00279d9953d94de4d17722ba2c768b92bd4ebeec908c\u0027:\n  LocationManagerService: Remove some unneeded imports.\n"
    },
    {
      "commit": "bd235f10a9873c1f94cd44519c1e0cd118c5a8ab",
      "tree": "58effaddf2328efa70aa42112d8ec2f0987b34ec",
      "parents": [
        "53c31ed1ff2880e6b9b387a291a3f3e938fc9295",
        "8c850b792f2d371fd8a4aff146d9d757ee982539"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun Jun 07 21:04:39 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun Jun 07 21:04:39 2009 -0700"
      },
      "message": "am 8c850b79: Add IRestoreSession interface for the restore flow\n\nMerge commit \u00278c850b792f2d371fd8a4aff146d9d757ee982539\u0027\n\n* commit \u00278c850b792f2d371fd8a4aff146d9d757ee982539\u0027:\n  Add IRestoreSession interface for the restore flow\n"
    },
    {
      "commit": "9d9953d94de4d17722ba2c768b92bd4ebeec908c",
      "tree": "576796767dbade84f759ffd5dbc07d0a6583f2df",
      "parents": [
        "8c850b792f2d371fd8a4aff146d9d757ee982539",
        "6ba283f726aaedd9a7c963d6b0514d4443c4a572"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 07 20:30:45 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 07 20:30:45 2009 -0700"
      },
      "message": "Merge change 3420 into donut\n\n* changes:\n  LocationManagerService: Remove some unneeded imports.\n"
    },
    {
      "commit": "6ba283f726aaedd9a7c963d6b0514d4443c4a572",
      "tree": "06c5a6cadf3a7543d38618ba1fc637e9cd5344ca",
      "parents": [
        "19cd309f9eccdf8454dc6e5076013588b7a170a3"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Jun 07 23:29:25 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Jun 07 23:29:25 2009 -0400"
      },
      "message": "LocationManagerService: Remove some unneeded imports.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "8c850b792f2d371fd8a4aff146d9d757ee982539",
      "tree": "3ab4ec581b85ed59078692c573725db69a109e8d",
      "parents": [
        "b4a6188a74273611abcae05f3a3b1f0547548301"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun Jun 07 19:33:20 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun Jun 07 19:33:20 2009 -0700"
      },
      "message": "Add IRestoreSession interface for the restore flow\n\nRestore is a fairly complicated, somewhat stateful process, so we introduce\na new interface to encapsulate the various bits and pieces into a nicely\nseparable component.  In particular, this will make it much cleaner to\nopen and interrogate an expensive-to-construct transport and then reuse it\nfor the actual restore process itself.\n"
    },
    {
      "commit": "4dde34b2f0e69a5a3e53e06614da89b9e4afc3e8",
      "tree": "e196996ee9639a3d2ce318ac2e523416458d9b98",
      "parents": [
        "c71f084ff9e52e14258d1f75347426cc3ae4e195",
        "da55569b0aaf98ff4d472d85ae1b038e76e1e9c3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jun 07 14:12:04 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun Jun 07 14:12:04 2009 -0700"
      },
      "message": "am da55569b: Merge change 3417 into donut\n\nMerge commit \u0027da55569b0aaf98ff4d472d85ae1b038e76e1e9c3\u0027\n\n* commit \u0027da55569b0aaf98ff4d472d85ae1b038e76e1e9c3\u0027:\n  Adjust IBackupTransport interface\n"
    },
    {
      "commit": "7b88128e08ba45b071cd714dad9681ce66920d32",
      "tree": "1e6517a62d2d4b9062719d72b735fba88c286203",
      "parents": [
        "19cd309f9eccdf8454dc6e5076013588b7a170a3"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun Jun 07 13:52:37 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun Jun 07 13:55:42 2009 -0700"
      },
      "message": "Adjust IBackupTransport interface\n\nInstead of just passing a package name to performBackup, pass the whole\nPackageInfo struct, explicitly including the list of signatures for the package.\nNo need to make each transport look this up individually when it\u0027s a necessary\npart of the backup payload for each app.\n"
    },
    {
      "commit": "36d3ebb880e922859d4fd83792e13069072c19b2",
      "tree": "e1ab6f801597dcf108cc1e9e19ae3f20ae0f6558",
      "parents": [
        "a31fb7d1d2225bc9965eb431ac6a2bb94af35e1f",
        "19cd309f9eccdf8454dc6e5076013588b7a170a3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 05 21:18:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 05 21:18:02 2009 -0700"
      },
      "message": "am 19cd309f: Merge change 3017 into donut\n\nMerge commit \u002719cd309f9eccdf8454dc6e5076013588b7a170a3\u0027\n\n* commit \u002719cd309f9eccdf8454dc6e5076013588b7a170a3\u0027:\n  Add the EAP related fields for WiFi configuration.\n"
    },
    {
      "commit": "a31fb7d1d2225bc9965eb431ac6a2bb94af35e1f",
      "tree": "46bc953c41de2cc7910126e790896d59fee39e54",
      "parents": [
        "5f0a472cd446b418b11e5b26f227bdce95f7115f",
        "6fa959769051f08655292ec47aa8480b248b67fd"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 05 21:17:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 05 21:17:54 2009 -0700"
      },
      "message": "am 6fa95976: Apply OOM adjustment while an app is undergoing backup\n\nMerge commit \u00276fa959769051f08655292ec47aa8480b248b67fd\u0027\n\n* commit \u00276fa959769051f08655292ec47aa8480b248b67fd\u0027:\n  Apply OOM adjustment while an app is undergoing backup\n"
    },
    {
      "commit": "77a8658a9140a8ea6d54908f0914033fe3100872",
      "tree": "9f3607c15045205a6a7f34fc15a65fb39d420193",
      "parents": [
        "ffa3ddfb706ffdd54ae525aa74c0a62d206b61b5",
        "5d16ac5eb6c4a468cabc39bdd00eac1759993db5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 05 21:17:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 05 21:17:36 2009 -0700"
      },
      "message": "am 5d16ac5e: Merge change 3374 into donut\n\nMerge commit \u00275d16ac5eb6c4a468cabc39bdd00eac1759993db5\u0027\n\n* commit \u00275d16ac5eb6c4a468cabc39bdd00eac1759993db5\u0027:\n  Fix tracking of backup participants across package remove/update\n"
    },
    {
      "commit": "19cd309f9eccdf8454dc6e5076013588b7a170a3",
      "tree": "97a9dc6b9ccbd887f053e39a2a7510e8fabe4c33",
      "parents": [
        "6fa959769051f08655292ec47aa8480b248b67fd",
        "5069cc78497209c035a7019b2f407bd1ed57f64a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 05 19:55:44 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 05 19:55:44 2009 -0700"
      },
      "message": "Merge change 3017 into donut\n\n* changes:\n  Add the EAP related fields for WiFi configuration.\n"
    },
    {
      "commit": "6fa959769051f08655292ec47aa8480b248b67fd",
      "tree": "57c5930396cd3cd6000ff7b16926359b7521c4cb",
      "parents": [
        "1aa8170e6a448afad86e5d62927d3b8ca4cd9707"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 05 18:43:55 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 05 18:45:34 2009 -0700"
      },
      "message": "Apply OOM adjustment while an app is undergoing backup\n"
    },
    {
      "commit": "cd4ff2e72d42d66ea2d6a27f1c87cfffd16b1791",
      "tree": "66ded148b870e0374debd3298cf16eb014327596",
      "parents": [
        "b1c2874790908d1bbb9b99242fc7cc96c7b45a8a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 05 13:57:54 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 05 14:03:25 2009 -0700"
      },
      "message": "Fix tracking of backup participants across package remove/update\n"
    },
    {
      "commit": "9c4125e268d10eb2c4f26ce5c1ac32bf90181c51",
      "tree": "16e263a14adc73c21146af8e000ad4c53b74f911",
      "parents": [
        "49f372210b09c461f7c32dddd9170f9e8dad076f",
        "54de90635e1d0628c396d65e6c948bf4a1529229"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 05 00:29:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 05 00:29:36 2009 -0700"
      },
      "message": "am 54de9063: Merge change 3243 into donut\n\nMerge commit \u002754de90635e1d0628c396d65e6c948bf4a1529229\u0027\n\n* commit \u002754de90635e1d0628c396d65e6c948bf4a1529229\u0027:\n  Fix backup agent unbind\n"
    },
    {
      "commit": "1885b37913181230c36d6485bdd389f89fa90f43",
      "tree": "285579b79592713e35b8137efe8da85fdf8d0c53",
      "parents": [
        "b640da8fcbc63821dfca1ab92f038771a2bf0ab9"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 04 15:00:33 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 04 15:02:37 2009 -0700"
      },
      "message": "Fix backup agent unbind\n\nThe handwritten binder transaction passing wasn\u0027t propagating the agent-destroy\ntransaction to the client side.  Oops.\n\nAlso, remove obsolete run-one-agent code from the backup manager service.\n"
    },
    {
      "commit": "5069cc78497209c035a7019b2f407bd1ed57f64a",
      "tree": "20bcbb43d3d3a5897297c31a8e584a3541057100",
      "parents": [
        "641bb3d8dfd72f57356d39ef00256d6077c9e235"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jun 03 17:33:47 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Jun 05 02:10:35 2009 +0800"
      },
      "message": "Add the EAP related fields for WiFi configuration.\n\n-- added the EAP/802.1X related fields in WifiConfiguration for\n  supporting EAP/802.1X authentication.\n-- hid the related fields for now.\n"
    },
    {
      "commit": "ce74edc7eab6b1270577ac7a369243a9cac333e6",
      "tree": "6bd54cd14a4ee948e91c805a37d3ad0fa41a8b9c",
      "parents": [
        "7fb952ac237bbb99d5ccc1455225a7ea07992312"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 02 16:11:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 04 09:57:18 2009 -0700"
      },
      "message": "More backup work\n\n* Put in some permission enforcement around agent connection notification\n  and full-backup scheduling.\n* Full backup now applies to any package, not just backup participants who\n  have declared their own android:backupAgent\n* The process of running the backup operation on the set of apps who have\n  been queued for it is now done in a separate thread, with a notification\n  mechanism from the main Backup Manager service to pass along new-agent\n  binding knowledge.  There\u0027s no longer one do-backup message on the primary\n  Handler per target application.\n* The new backup thread sets up the desired transport now and passes\n  along the newly backed-up data to it for each backup target.  Two\n  transports have been defined so far, GoogleTransport and AdbTransport;\n  both are stubs at present.\n\nNote that at present the backup data output file seems to be properly\ncreated, but after doBackup() is called on the test app\u0027s agent it\u0027s\nstill zero size.\n"
    },
    {
      "commit": "043dadc7516d20c3b3ccbcb20c53aaeef076a237",
      "tree": "4ff8692d43447a1416b3d605e386237c8b97e9d3",
      "parents": [
        "4ee0a751682e713d3d6ca97fa1271df12d352ee0"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 02 16:11:00 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 03 20:42:15 2009 -0700"
      },
      "message": "More backup work\n\n* Put in some permission enforcement around agent connection notification\n  and full-backup scheduling.\n* Full backup now applies to any package, not just backup participants who\n  have declared their own android:backupAgent\n* The process of running the backup operation on the set of apps who have\n  been queued for it is now done in a separate thread, with a notification\n  mechanism from the main Backup Manager service to pass along new-agent\n  binding knowledge.  There\u0027s no longer one do-backup message on the primary\n  Handler per target application.\n* The new backup thread sets up the desired transport now and passes\n  along the newly backed-up data to it for each backup target.  Two\n  transports have been defined so far, GoogleTransport and AdbTransport;\n  both are stubs at present.\n\nNote that at present the backup data output file seems to be properly\ncreated, but after doBackup() is called on the test app\u0027s agent it\u0027s\nstill zero size.\n"
    },
    {
      "commit": "a2fe677487e65c3710ec38c530b92eb108cb372c",
      "tree": "243e88ffb30424da6f069380916128ace91c21a8",
      "parents": [
        "342d59d3197caa1cd1de7a600c6e0ba4a59883f4",
        "9654cba89ebf02b68bd7109df2d9f758a30fb8bf"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 16:34:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 16:34:53 2009 -0700"
      },
      "message": "am 9654cba8: Merge change 3094 into donut\n\nMerge commit \u00279654cba89ebf02b68bd7109df2d9f758a30fb8bf\u0027\n\n* commit \u00279654cba89ebf02b68bd7109df2d9f758a30fb8bf\u0027:\n  Grant permissions to older package when deleting an updated system application.\n"
    },
    {
      "commit": "342d59d3197caa1cd1de7a600c6e0ba4a59883f4",
      "tree": "046d7a2f14ff8a76e2f4ac5afbe4016731f77e68",
      "parents": [
        "138197f961b671ff5b48785b0fe61477ebfc7627",
        "9189cabb0b6c6c28232fe6f412b7ba7a37352a6a"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 16:34:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 16:34:47 2009 -0700"
      },
      "message": "am 9189cabb: * Moved supports-density tag under manifest * Refactored Compatibility code   * Added CompatibilityInfo class   * Removed getApplicationScale from Context   * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context * Expandable support   * Added expandable tag under manifest   * Old application w/o expandable is given the default screen size  ([320, 480] x density).   * The non-expandable window is centered.\n\nMerge commit \u00279189cabb0b6c6c28232fe6f412b7ba7a37352a6a\u0027\n\n* commit \u00279189cabb0b6c6c28232fe6f412b7ba7a37352a6a\u0027:\n  * Moved supports-density tag under manifest\n"
    },
    {
      "commit": "9654cba89ebf02b68bd7109df2d9f758a30fb8bf",
      "tree": "8f6f4309702c130afab6bd0c4c1d2d9271014c13",
      "parents": [
        "9189cabb0b6c6c28232fe6f412b7ba7a37352a6a",
        "701f5164c1230cc1416b1a1f3b0091ca68f6caec"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 16:32:18 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 16:32:18 2009 -0700"
      },
      "message": "Merge change 3094 into donut\n\n* changes:\n  Grant permissions to older package when deleting an updated system application. When a system app gets updated, the permissions are granted to the new pkg. Similary when this updated pkg(from data partition) gets removed, the older pkg from system partition is restored. but the permissions are\u0027nt being granted explicitly and so the restore fails. This fix addresses specific bugs related to uninstall of updated system apps. These code paths will be revisited later but this fix is needed for OTA\u0027s that might fall back to older versions of system apps.\n"
    },
    {
      "commit": "9189cabb0b6c6c28232fe6f412b7ba7a37352a6a",
      "tree": "6ddc6a8eb0158cba32cc6139b04c6b6eb9f0ba5f",
      "parents": [
        "eaeb663bcd7a82b654954b42663232cbd7bef7e7"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 11:19:12 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 03 16:28:10 2009 -0700"
      },
      "message": "* Moved supports-density tag under manifest\n* Refactored Compatibility code\n  * Added CompatibilityInfo class\n  * Removed getApplicationScale from Context\n  * Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context\n* Expandable support\n  * Added expandable tag under manifest\n  * Old application w/o expandable is given the default screen size  ([320, 480] x density).\n  * The non-expandable window is centered.\n"
    },
    {
      "commit": "138197f961b671ff5b48785b0fe61477ebfc7627",
      "tree": "c6838f306b06778c004aa91570656c6847a78057",
      "parents": [
        "e87b2f02761744520c841f536d3f2d7be97fcc91",
        "eaeb663bcd7a82b654954b42663232cbd7bef7e7"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 03 16:21:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 16:21:13 2009 -0700"
      },
      "message": "am eaeb663b: Track activity foreground CPU usage for battery stats.\n\nMerge commit \u0027eaeb663bcd7a82b654954b42663232cbd7bef7e7\u0027\n\n* commit \u0027eaeb663bcd7a82b654954b42663232cbd7bef7e7\u0027:\n  Track activity foreground CPU usage for battery stats.\n"
    },
    {
      "commit": "701f5164c1230cc1416b1a1f3b0091ca68f6caec",
      "tree": "b90842e5c1697daf6d4232f076b7b39df1f1a24d",
      "parents": [
        "cede1ed3e1721dc4a697a540388ef0f4b51c60eb"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 03 15:47:55 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 03 15:52:04 2009 -0700"
      },
      "message": "Grant permissions to older package when deleting an updated system application.\nWhen a system app gets updated, the permissions are granted to the new pkg. Similary when this updated pkg(from data partition)\ngets removed, the older pkg from system partition is restored. but the permissions are\u0027nt being granted explicitly and so the restore fails.\nThis fix addresses specific bugs related to uninstall of updated system apps. These code paths will be revisited later but this fix is needed for OTA\u0027s that might\nfall back to older versions of system apps.\n"
    },
    {
      "commit": "eaeb663bcd7a82b654954b42663232cbd7bef7e7",
      "tree": "c9b62c0df637d7bd394aaf39e490641dadda9744",
      "parents": [
        "cede1ed3e1721dc4a697a540388ef0f4b51c60eb"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 03 15:16:10 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 03 15:38:24 2009 -0700"
      },
      "message": "Track activity foreground CPU usage for battery stats.\n\nTrack the foreground CPU time of an activity so that we can tell if apps are\nspending more time in the background compared to foreground.\nUpdate power profile values for screen backlight and GPS.\nFix some javadoc bugs (milliseconds vs. microseconds).\n"
    },
    {
      "commit": "ae8c5b868fa518306b50e08da9e5258ad075fa61",
      "tree": "d2ec0e1ee9aad833e9e9a3cf865c4e2b93dc0972",
      "parents": [
        "9081cd577889ea96075a3034611c0762f3e3d27e",
        "8dbe612dc60526d635e57257b58627b33a099678"
      ],
      "author": {
        "name": "Satish Sampath",
        "email": "satish@android.com",
        "time": "Wed Jun 03 00:05:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 03 00:05:36 2009 -0700"
      },
      "message": "am 8dbe612d: Adding internal method replacePreferredActivity.\n\nMerge commit \u00278dbe612dc60526d635e57257b58627b33a099678\u0027\n\n* commit \u00278dbe612dc60526d635e57257b58627b33a099678\u0027:\n  Adding internal method replacePreferredActivity.\n"
    },
    {
      "commit": "8dbe612dc60526d635e57257b58627b33a099678",
      "tree": "2f02924de3a2e890aab2d4a75a1b52d2e2aa1328",
      "parents": [
        "5f784df5680e07f6cbc5d929560dfadc0e22db3b"
      ],
      "author": {
        "name": "Satish Sampath",
        "email": "satish@android.com",
        "time": "Tue Jun 02 23:35:54 2009 +0100"
      },
      "committer": {
        "name": "Satish Sampath",
        "email": "satish@android.com",
        "time": "Wed Jun 03 07:54:42 2009 +0100"
      },
      "message": "Adding internal method replacePreferredActivity.\n\nThis was required because we need a way to set the preferred activity for a\nparticular intent filter based on user selection (in our case the\nACTION_WEB_SEARCH intent filter for selecting the preferred search engine from\nthe list of available search engines providers). The current\naddPreferredActivity call was not sufficient since it leaves the existing\npreferred activities in the list and does not remove them, which this call\ndoes.\n"
    },
    {
      "commit": "8d3002e04755c0e7d0d1ed6c8f872c4bb2201f8e",
      "tree": "a0574613bf402c9cef66e082b3f9cbc890fb5c71",
      "parents": [
        "19db02b94504c84c8301f5ae076a4af7ac185a88",
        "35feec46d90d434a2439765d127a9e8f68a52340"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 02 00:51:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 02 00:51:32 2009 -0700"
      },
      "message": "am 35feec46: Merge change 2761 into donut\n\nMerge commit \u002735feec46d90d434a2439765d127a9e8f68a52340\u0027\n\n* commit \u002735feec46d90d434a2439765d127a9e8f68a52340\u0027:\n  TODO\u0027s from Teleca with modifications from wink.\n"
    },
    {
      "commit": "f315238a2b07c7e84f6ade800e504f520d262e66",
      "tree": "ca139c52989818f8a0adbbc28c13799c15bb5cf0",
      "parents": [
        "ff0d91479d3c8523bc290bd1b65fcd2546be1d40"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 01 14:39:20 2009 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon Jun 01 14:39:20 2009 -0700"
      },
      "message": "TODO\u0027s from Teleca with modifications from wink.\n"
    },
    {
      "commit": "7c49790cde0acb494b6e8980662842c95dd8859a",
      "tree": "55b0db6c07ba754bcb6301ef0353e86c890e35ba",
      "parents": [
        "4599184a1c1c3f54b396c49b5728e4031e559e18",
        "162c9d0e90eaa71adc8c7d1456d1a9a95e638c47"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 01 10:01:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 01 10:01:08 2009 -0700"
      },
      "message": "am 162c9d0e: Merge change 2805 into donut\n\nMerge commit \u0027162c9d0e90eaa71adc8c7d1456d1a9a95e638c47\u0027\n\n* commit \u0027162c9d0e90eaa71adc8c7d1456d1a9a95e638c47\u0027:\n  base: Rename WRITE_SDCARD -\u003e WRITE_EXTERNAL_STORAGE\n"
    },
    {
      "commit": "5a3a77dabd744d5be79d7745c2a977c108a9ad98",
      "tree": "2c5ad40a1c6c967839c60f91542eb99ca599502e",
      "parents": [
        "181fafaf48208978b8ba2022683ffa78aaeddde1"
      ],
      "author": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Jun 01 09:25:28 2009 -0700"
      },
      "committer": {
        "name": "San Mehat",
        "email": "san@google.com",
        "time": "Mon Jun 01 09:25:28 2009 -0700"
      },
      "message": "base: Rename WRITE_SDCARD -\u003e WRITE_EXTERNAL_STORAGE\n\nSigned-off-by: San Mehat \u003csan@google.com\u003e\n"
    },
    {
      "commit": "ad6042aa2342d0a869f84772774b47ae87346ccf",
      "tree": "f227b82e09bffaf9e4f401352c331d010f45752a",
      "parents": [
        "c29c7158c79c04671e6cab379ef371ac20045454",
        "181fafaf48208978b8ba2022683ffa78aaeddde1"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun May 31 19:44:35 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun May 31 19:44:35 2009 -0700"
      },
      "message": "am 181fafaf: Retool the backup process to use a new \\\u0027BackupAgent\\\u0027 class\n\nMerge commit \u0027181fafaf48208978b8ba2022683ffa78aaeddde1\u0027\n\n* commit \u0027181fafaf48208978b8ba2022683ffa78aaeddde1\u0027:\n  Retool the backup process to use a new \u0027BackupAgent\u0027 class\n"
    },
    {
      "commit": "181fafaf48208978b8ba2022683ffa78aaeddde1",
      "tree": "7c062847d418415e28813e70aac53c8c47e4ff69",
      "parents": [
        "c01159bb00f7273f9b051dfbbe6bc10d54d3a846"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu May 14 11:12:14 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun May 31 13:10:03 2009 -0700"
      },
      "message": "Retool the backup process to use a new \u0027BackupAgent\u0027 class\n\nBackups will be handled by launching the application in a special\nmode under which no activities or services will be started, only\nthe BackupAgent subclass named in the app\u0027s android:backupAgent\nmanifest property.  This takes the place of the BackupService class\nused earlier during development.\n\nIn the cases of *full* backup or restore, an application that does\nnot supply its own BackupAgent will be launched in a restricted\nmanner; in particular, it will be using the default Application\nclass rather than any manifest-declared one.  This ensures that the\napp is not running any code that may try to manipulate its data\nwhile the backup system reads/writes its data set.\n"
    },
    {
      "commit": "8e19b7c0e4c578703a1df0f8346b22b9e7c8a0f7",
      "tree": "5ca0bc2b907dc73b8cd82b60ae76eee28934173a",
      "parents": [
        "bf6a00d37b447921a3ad8464198e9d77be45ce14",
        "a3d28bd5c278f750c70f2b87fce23df221cd4a01"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 29 11:49:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 29 11:49:36 2009 -0700"
      },
      "message": "am a3d28bd5: Merge change 520 into donut\n\nMerge commit \u0027a3d28bd5c278f750c70f2b87fce23df221cd4a01\u0027\n\n* commit \u0027a3d28bd5c278f750c70f2b87fce23df221cd4a01\u0027:\n  Enforce permissions for PhoneStateListener events.\n"
    },
    {
      "commit": "45515659438964ec47f4feac247f0e9dce587c86",
      "tree": "20591901118276470ed49591d9387b0f5c8e97ab",
      "parents": [
        "d9cc7659fa9b8544e2a3ca7b7040fbd79afdf7ea"
      ],
      "author": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Thu Apr 23 15:20:21 2009 -0700"
      },
      "committer": {
        "name": "Jaikumar Ganesh",
        "email": "jaikumar@google.com",
        "time": "Fri May 29 11:38:00 2009 -0700"
      },
      "message": "Enforce permissions for PhoneStateListener events.\n\nPhoneStateListener events like LISTEN_CALL_STATE_CHANGED,\nhave privacy information like phone numbers and hence,\nneed to be protected with a permission. The permission\nREAD_PHONE_STATE is used for this purpose. Use the permission\ntrick to ensure backward compatability.\n"
    },
    {
      "commit": "96cdc61c69aa735e65295a50e3e2922425b3c877",
      "tree": "7d88100a2f15856e87086c6dee8a85cad656e1a4",
      "parents": [
        "aebadd2cf489948847f262d917ee39cb285815b3",
        "1e2e44e900cb9a25d548e27a20d65292a7f321bc"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 28 14:34:28 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 28 14:34:28 2009 -0700"
      },
      "message": "am 1e2e44e9: Merge change 2365 into donut\n\nMerge commit \u00271e2e44e900cb9a25d548e27a20d65292a7f321bc\u0027\n\n* commit \u00271e2e44e900cb9a25d548e27a20d65292a7f321bc\u0027:\n  Fix wifi multicast API for public use.\n  Revert \"Bug fixes and performance improvements\"\n"
    },
    {
      "commit": "fc1b15cfbfc5f69235ec1f367abd7a909381cd05",
      "tree": "eeca713d5c9078989763d3777aafd41007a2846f",
      "parents": [
        "1cb62b83241c5d1cac9e9cda60d0d5d9218b44fb"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri May 22 15:09:51 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu May 28 13:37:06 2009 -0700"
      },
      "message": "Fix wifi multicast API for public use.\n\nApplying API review comments and taking it public.\n"
    },
    {
      "commit": "ecd53112c5f03ed067f1c82a25bdae844f1d8caf",
      "tree": "ec17c9578e4d5cb8f2e41b3384c2965ab0935b80",
      "parents": [
        "09d00f705be5dbc1766e12e47c0a743abbad360e",
        "2a4daf06fb36ff932f9d52962284ba369cee1ce0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 26 19:01:39 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 26 19:01:39 2009 -0700"
      },
      "message": "am 2a4daf06: Merge change 2508 into donut\n\nMerge commit \u00272a4daf06fb36ff932f9d52962284ba369cee1ce0\u0027\n\n* commit \u00272a4daf06fb36ff932f9d52962284ba369cee1ce0\u0027:\n  Activity Manager changes the scheduling group of processes.\n"
    },
    {
      "commit": "06de2ea752171f52a4e6e6872cb3a0689e591dcb",
      "tree": "5b970c93b8f49b81502d6ceb26a2e8fcfc240028",
      "parents": [
        "c29df57e5abb09c7e1ceed153e8f2b906f522d7b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 21 12:56:43 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 26 18:50:46 2009 -0700"
      },
      "message": "Activity Manager changes the scheduling group of processes.\n\nThe algorithm for this is currently very simple: all persistent processes are\nalways in the normal scheduling group, all other processes are normal if their\noom_adj is as good or better than VISIBLE, otherwise they are in the background\ngroup.\n\nNote that this currently results in a fair number of log messages about not\nbeing able to change the group, since the system process does not have\npermission to do so.  Once a kernel fix is in, these will go away and the code\nwill start working.\n"
    },
    {
      "commit": "b57d6c9939190f440d3e13adb5fafba6a0cf653d",
      "tree": "83d8e33dfb2a54d19078115e7d76491b09516837",
      "parents": [
        "a742dc421bd17117ec802b944190a1c731e05a91",
        "270e87f71abc2edf446dbec20c725c823e8c7f37"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat May 23 10:36:58 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sat May 23 10:36:58 2009 -0700"
      },
      "message": "am 270e87f7: Sensors: Use a native_handle for the data channel instead of a single file descriptor.\n\nMerge commit \u0027270e87f71abc2edf446dbec20c725c823e8c7f37\u0027\n\n* commit \u0027270e87f71abc2edf446dbec20c725c823e8c7f37\u0027:\n  Sensors: Use a native_handle for the data channel instead of a single file descriptor.\n"
    },
    {
      "commit": "270e87f71abc2edf446dbec20c725c823e8c7f37",
      "tree": "bb4258a6f9206b11bb24f51d7aaf42ce8d90d623",
      "parents": [
        "fea1a459aaebc5fd66b12520312ddbe09547f094"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Fri May 22 10:02:14 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sat May 23 13:22:08 2009 -0400"
      },
      "message": "Sensors: Use a native_handle for the data channel instead of a single file descriptor.\n\nThis eliminates the requirement that all sensors share a single file descriptor.\nThis, along with concurrent changes in other projects, fixes bugs b/1614524 and b/1614481\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "a742dc421bd17117ec802b944190a1c731e05a91",
      "tree": "3eb0f2ae380a88b275c0dcbe2290a01672a66ece",
      "parents": [
        "385bb79ebb436e5672915eac2fc1a4fcdedf88b6",
        "fea1a459aaebc5fd66b12520312ddbe09547f094"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 19:41:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 22 19:41:36 2009 -0700"
      },
      "message": "am fea1a459: Merge change 2364 into donut\n\nMerge commit \u0027fea1a459aaebc5fd66b12520312ddbe09547f094\u0027\n\n* commit \u0027fea1a459aaebc5fd66b12520312ddbe09547f094\u0027:\n  Initial checkin for App Fuel Gauge infrastructure.\n"
    },
    {
      "commit": "fea1a459aaebc5fd66b12520312ddbe09547f094",
      "tree": "fefbf223b0ac3f2cca7a11ce54dc118ef99b90c1",
      "parents": [
        "b181118b6e58c0014da4e9d52bf38548adc73a8a",
        "244fa5c05b2cc8c4c0754aeed4ee42c588ea89d1"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 19:40:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 19:40:33 2009 -0700"
      },
      "message": "Merge change 2364 into donut\n\n* changes:\n  Initial checkin for App Fuel Gauge infrastructure.\n"
    },
    {
      "commit": "385bb79ebb436e5672915eac2fc1a4fcdedf88b6",
      "tree": "8c11ac02a3d83f8e590a5b8f041f403889775467",
      "parents": [
        "aaafa4fb1cda4dd4e1a261a1c196865ac0a14105",
        "b181118b6e58c0014da4e9d52bf38548adc73a8a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 22 18:47:12 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 22 18:47:12 2009 -0700"
      },
      "message": "am b181118b: Define TARGET_CPU_ABI for finding native code in .apks\n\nMerge commit \u0027b181118b6e58c0014da4e9d52bf38548adc73a8a\u0027\n\n* commit \u0027b181118b6e58c0014da4e9d52bf38548adc73a8a\u0027:\n  Define TARGET_CPU_ABI for finding native code in .apks\n"
    },
    {
      "commit": "b181118b6e58c0014da4e9d52bf38548adc73a8a",
      "tree": "4f62cb71cacc03d25935e5430d8aa431dbeef854",
      "parents": [
        "5b6a5cee4c48fd2ffc35f07ebe9f24eb53086b9a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu May 21 15:45:42 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 22 18:45:25 2009 -0700"
      },
      "message": "Define TARGET_CPU_ABI for finding native code in .apks\n"
    },
    {
      "commit": "244fa5c05b2cc8c4c0754aeed4ee42c588ea89d1",
      "tree": "95a07e2ffa3405bece4187b1b063db343f5e975c",
      "parents": [
        "b204d4f12773ec67c7f0ded41cb111018f154476"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri May 22 14:36:07 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri May 22 14:36:07 2009 -0700"
      },
      "message": "Initial checkin for App Fuel Gauge infrastructure.\n\nThis adds the PowerProfile class and data file that provides power consumption numbers\nfor different subsystems. Also added Audio/Video subsystems to track on a per UID basis.\n"
    },
    {
      "commit": "b5010cc3c33c74cc406a70f34f93d330a3f0db6a",
      "tree": "d915d9dd8108eafc668a45f15bb839c26bf026c6",
      "parents": [
        "c8a57c4b58cdfd23b41e6a770d41e375601e57ca"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Thu May 21 15:11:40 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Fri May 22 09:31:41 2009 -0700"
      },
      "message": "Add carrier/mcc factors to wifi-channel decision.\n\nUses ro.carrier and MCC when available to try to set\n(non-persistingly) the number of allowed wifi channels.\nPart of the fix for 1625953.\n"
    },
    {
      "commit": "9b1e1400df4c6c4b69985f164097f0c842dd796f",
      "tree": "cae61f8f495e8a93dcc0ffdc887e7445c46fae70",
      "parents": [
        "a59fa9b6cba9cae0f7d02e240dbd10603cc127a5",
        "8c690ea9976d644db3c96eddbbbd2d50eac56913"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 21 09:42:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 21 09:42:38 2009 -0700"
      },
      "message": "am 8c690ea9: Merge change 2182 into donut\n\nMerge commit \u00278c690ea9976d644db3c96eddbbbd2d50eac56913\u0027\n\n* commit \u00278c690ea9976d644db3c96eddbbbd2d50eac56913\u0027:\n  location: Replace ILocationCollector interface with new ILocationProvider method\n"
    },
    {
      "commit": "fd6e5f0dda50e113db4ccc55338b6c4f09da37a4",
      "tree": "faf8e2c6510d2a0c4439cdcdfe74d97100dc9020",
      "parents": [
        "bb7b7b316a6a15f4df6af3c62a293920c68c7b00"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 21 11:28:20 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu May 21 11:28:20 2009 -0400"
      },
      "message": "location: Replace ILocationCollector interface with new ILocationProvider method\n\nThis change replaces ILocationCollector with a more general mechanism that\npasses locations received from a provider to all other providers.\nThe network location provider now uses this to implement the location collector.\nIn the future, this could be used to inject network locations to the GPS\nas aiding data.\n\nThis change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "bad962bf407bbb7a7ce296fb75f1883375afa832",
      "tree": "38b353af4f5c334ecadfe8296c21c37b5e8c5f68",
      "parents": [
        "a39a67f3ad282298b750ea80038a1abf878d9ec1",
        "e29146158b6048936671decc060d398a68333fc0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 20 11:58:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 20 11:58:08 2009 -0700"
      },
      "message": "am e2914615: Merge change 2099 into donut\n\nMerge commit \u0027e29146158b6048936671decc060d398a68333fc0\u0027\n\n* commit \u0027e29146158b6048936671decc060d398a68333fc0\u0027:\n  Hook up the backup data writer, and add a utility to read the backup data files.\n"
    },
    {
      "commit": "681b1de3c7188b33cd02f189d50cb2cadd6af73a",
      "tree": "755ab7275bab200f1dc7d714955b7d0e2a174f43",
      "parents": [
        "b5b33c734ab2a178f07c667a8c1daf8beab837aa",
        "a5ca3425f9cbb930dc62559893590432ed29c961"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 20 11:49:34 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 20 11:49:34 2009 -0700"
      },
      "message": "am a5ca3425: Merge change 2017 into donut\n\nMerge commit \u0027a5ca3425f9cbb930dc62559893590432ed29c961\u0027\n\n* commit \u0027a5ca3425f9cbb930dc62559893590432ed29c961\u0027:\n  Increment BatteryStatsImpl\u0027s VERSION.\n"
    },
    {
      "commit": "d2110dbce071a236b6176de344ca797b737542eb",
      "tree": "996e044c8c7bf49463394bc911f0277d969bde5d",
      "parents": [
        "40f5a4ea3bc90e43a442ab336f2342020bba86b3"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 19 13:41:21 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 20 11:24:20 2009 -0700"
      },
      "message": "Hook up the backup data writer, and add a utility to read the backup data files.\n"
    },
    {
      "commit": "a5ca3425f9cbb930dc62559893590432ed29c961",
      "tree": "76aa5e00c32b01348aefcb667927751d31019135",
      "parents": [
        "eb2c314b4d31c44af8a27ef51120b33290e65837",
        "58ff0217a617d5b03d18f0ef532f254f8ba6de2b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 20 09:06:22 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 20 09:06:22 2009 -0700"
      },
      "message": "Merge change 2017 into donut\n\n* changes:\n  Increment BatteryStatsImpl\u0027s VERSION. That\u0027ll make it stop trying to interpret older records with the new format. Also applied other comments involving name changes to remove un-needed \u0027Wifi\u0027 labels in WifiManager API, etc.\n"
    },
    {
      "commit": "cad616ff92ff67bcfbbaefd6407c0f7f5e7549e7",
      "tree": "e58f9af09e29016b0e9a1f7cb2eccfb6a488db92",
      "parents": [
        "ed73bad62e111fab940360ba6ca7f8dae63e1b1e",
        "97dd7ac8ede4eec057977dd579f236519782be7c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 20 08:54:40 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 20 08:54:40 2009 -0700"
      },
      "message": "am 97dd7ac8: Merge change 1860 into donut\n\nMerge commit \u002797dd7ac8ede4eec057977dd579f236519782be7c\u0027\n\n* commit \u002797dd7ac8ede4eec057977dd579f236519782be7c\u0027:\n  ActivityManagerService sends bug reports on crashes and ANRs\n"
    },
    {
      "commit": "0bcad89a58ad49a0a836902ad41584777ca1f3f3",
      "tree": "312ced3cce63f7f998c0e8bb1ada55727398d2c4",
      "parents": [
        "f0c6ab843e7261755483d1c48e4c03f630cc79b5",
        "95fc68f24a2a93e5664e2234abcfe479d385cc05"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 20 08:54:33 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 20 08:54:33 2009 -0700"
      },
      "message": "am 95fc68f2: Fix issue where apps could prevent the user from going home.\n\nMerge commit \u002795fc68f24a2a93e5664e2234abcfe479d385cc05\u0027\n\n* commit \u002795fc68f24a2a93e5664e2234abcfe479d385cc05\u0027:\n  Fix issue where apps could prevent the user from going home.\n"
    },
    {
      "commit": "f5b9c72022f574417862e064cc0fdd8ea2d846dc",
      "tree": "a4b41387ce0aab4cb12c145f2c7a7bc3d6e1e7a2",
      "parents": [
        "5bc21aa0671d83e406b46e0431816dea8d9ca5cb"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Mon May 18 12:09:59 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed May 20 10:52:04 2009 +0200"
      },
      "message": "ActivityManagerService sends bug reports on crashes and ANRs\n\nIf an installerPackageName was specified when the app was installed,\nlooks for a receiver of ACTION_APP_ERROR in that package. If found,\nthis is the bug report receiver and the crash/ANR dialog will get a\n\"Report\" button. If pressed, a bug report will be delivered.\n"
    },
    {
      "commit": "95fc68f24a2a93e5664e2234abcfe479d385cc05",
      "tree": "6f8f8071cf8a69d82fd16c1d5455ea81d31e1275",
      "parents": [
        "ee748d37b01b3affb72b701d95ba20c189887b5f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 19 18:37:45 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 19 18:46:53 2009 -0700"
      },
      "message": "Fix issue where apps could prevent the user from going home.\n\nNow we have a 5-second time after home is pressed, during which\nonly the home app (and the status bar) can switch to another app.\nAfter that time, any start activity requests that occurred will\nbe executed, to allow things like alarms to be displayed.  Also\nif during that time the user launches another app, the pending\nstarts will be executed without resuming their activities and\nthe one they started placed at the top and executed.\n"
    },
    {
      "commit": "58ff0217a617d5b03d18f0ef532f254f8ba6de2b",
      "tree": "430db7df4bd3d709f1ac15443101fa9511a15255",
      "parents": [
        "65ff54c44bbd8c1dd6818d42b7c91c634c644aa9"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue May 19 15:53:54 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Tue May 19 15:53:54 2009 -0700"
      },
      "message": "Increment BatteryStatsImpl\u0027s VERSION.\nThat\u0027ll make it stop trying to interpret older records with the new format.\nAlso applied other comments involving name changes to remove un-needed \u0027Wifi\u0027 labels in WifiManager API, etc.\n"
    },
    {
      "commit": "02436e51820bbae283830046caf3ed4cde95b5d8",
      "tree": "7fe078f9e4b438b66392f24b6a17d21f78f6c4e1",
      "parents": [
        "55cf0cacc65736e4005d181a0dedfeedd026654f",
        "ac61f6bc2b24f7ab03cdb0089c67c4034ea8549c"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 19 11:16:24 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 19 11:16:24 2009 -0700"
      },
      "message": "am ac61f6bc: Telephony: Allow getCellLocation() if client has permission ACCESS_FINE_LOCATION\n\nMerge commit \u0027ac61f6bc2b24f7ab03cdb0089c67c4034ea8549c\u0027\n\n* commit \u0027ac61f6bc2b24f7ab03cdb0089c67c4034ea8549c\u0027:\n  Telephony: Allow getCellLocation() if client has permission ACCESS_FINE_LOCATION\n"
    },
    {
      "commit": "ac61f6bc2b24f7ab03cdb0089c67c4034ea8549c",
      "tree": "f43610491a25a94d82fa7e404c20467a42bf0545",
      "parents": [
        "12bb9471cb9ce2eb48d8e9817841f43e7220566f"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 19 09:14:41 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue May 19 13:53:24 2009 -0400"
      },
      "message": "Telephony: Allow getCellLocation() if client has permission ACCESS_FINE_LOCATION\n\nACCESS_FINE_LOCATION should imply ACCESS_COARSE_LOCATION, so either of these\npermissions should be sufficient to allow TelephonyManager.getCellLocation().\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e10de97205449ddeaaeb8f2922909c1f4cc62b86",
      "tree": "928c492f39ce0998bf00595dbf9e2a25865a71ba",
      "parents": [
        "72f3aa3762c630e5e4afd731f51e62c821c69c09"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@android.com",
        "time": "Mon May 18 11:24:50 2009 -0700"
      },
      "committer": {
        "name": "Michael Chan",
        "email": "mchan@android.com",
        "time": "Tue May 19 09:51:33 2009 -0700"
      },
      "message": "Throttle one last user activity call to 1/sec that was missed last time\n\n\tmodified:   services/java/com/android/server/WindowManagerService.java\n"
    },
    {
      "commit": "e249059a666acd595c142d64eaa131b632546557",
      "tree": "f75c025834cc6474651abd9d80a481644d7fa824",
      "parents": [
        "7ca4a171d20e91abc5fcf0514537113c679b9c87",
        "c3320dbe1c7acf040a3ec895129d8aae09c570ea"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Tue May 19 05:19:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 19 05:19:50 2009 -0700"
      },
      "message": "am c3320dbe: Minor performance improvement when filtering intents by package.\n\nMerge commit \u0027c3320dbe1c7acf040a3ec895129d8aae09c570ea\u0027\n\n* commit \u0027c3320dbe1c7acf040a3ec895129d8aae09c570ea\u0027:\n  Minor performance improvement when filtering intents by package.\n"
    },
    {
      "commit": "c3320dbe1c7acf040a3ec895129d8aae09c570ea",
      "tree": "6ff817107e7b1ba755ef7e266c5b752b3e45e694",
      "parents": [
        "5615d35b28119865cd65a79814a69f910e0a3862"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Mon May 18 20:15:32 2009 +0200"
      },
      "committer": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Tue May 19 14:15:14 2009 +0200"
      },
      "message": "Minor performance improvement when filtering intents by package.\n\nDon\u0027t consider the activities that have no intent filters.\n"
    },
    {
      "commit": "ad8195bb0ea9ed087519d899402571c8608c0b48",
      "tree": "1c94ee2a68df29ced7f5f71286241b22bbf80d72",
      "parents": [
        "8ba63601ab3aa4042f8801529cb629450aea4bc3",
        "2f11599eb317887a8cca14d8e66bfc485e5169e7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 01:19:18 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 19 01:19:18 2009 -0700"
      },
      "message": "am 2f11599e: Merge change 1579 into donut\n\nMerge commit \u00272f11599eb317887a8cca14d8e66bfc485e5169e7\u0027\n\n* commit \u00272f11599eb317887a8cca14d8e66bfc485e5169e7\u0027:\n  Teleca 2b changes\n"
    },
    {
      "commit": "2f11599eb317887a8cca14d8e66bfc485e5169e7",
      "tree": "aff8975073de4d008a513466f6d53385a0189e89",
      "parents": [
        "15e74b9da8b4cda11ee54da1e77a02d1a86c944a",
        "e9b06d754af03faf27012fbed1e7559ec1ba7c79"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 22:26:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 22:26:25 2009 -0700"
      },
      "message": "Merge change 1579 into donut\n\n* changes:\n  Teleca 2b changes\n"
    },
    {
      "commit": "e9b06d754af03faf27012fbed1e7559ec1ba7c79",
      "tree": "44e2dd9f47661d5ae3e6d38a63f3592f4ded4cd2",
      "parents": [
        "ce2372de58ad018623748f63e61ffc70c9eb8895"
      ],
      "author": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon May 18 21:47:50 2009 -0700"
      },
      "committer": {
        "name": "Wink Saville",
        "email": "wink@google.com",
        "time": "Mon May 18 21:47:50 2009 -0700"
      },
      "message": "Teleca 2b changes\n"
    },
    {
      "commit": "d6fe98e8883242775d9c295c02ec6c9ffcab76d6",
      "tree": "cecaa5deabc6ff3abcc31d6d5847d17f03086dbb",
      "parents": [
        "ccee782cdaadaf28fbbddd3885f1a9ca2427bd2d",
        "7e4c34329c98fc4279d658387b65ef4d041872a8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 13:44:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 18 13:44:36 2009 -0700"
      },
      "message": "am 7e4c3432: Merge change 1881 into donut\n\nMerge commit \u00277e4c34329c98fc4279d658387b65ef4d041872a8\u0027\n\n* commit \u00277e4c34329c98fc4279d658387b65ef4d041872a8\u0027:\n  WifiService: Wifi power management change\n"
    },
    {
      "commit": "ccee782cdaadaf28fbbddd3885f1a9ca2427bd2d",
      "tree": "5bc13e0b18a6aa021b883c18d18b42a7d64771d7",
      "parents": [
        "e9e95e6f8ebc23a1c0350a8f06f10eb75869e8cc",
        "d1a9337380cf9f40f1aa095457b11242d483295d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon May 18 13:44:35 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 18 13:44:35 2009 -0700"
      },
      "message": "am d1a93373: Add a new window flag to display a window when keyguard is shown.\n\nMerge commit \u0027d1a9337380cf9f40f1aa095457b11242d483295d\u0027\n\n* commit \u0027d1a9337380cf9f40f1aa095457b11242d483295d\u0027:\n  Add a new window flag to display a window when keyguard is shown.\n"
    },
    {
      "commit": "7e4c34329c98fc4279d658387b65ef4d041872a8",
      "tree": "8bebe5a7ab5d67fa7f5b307ee7ab3c6b6a4fac98",
      "parents": [
        "d1a9337380cf9f40f1aa095457b11242d483295d",
        "d9c32bc838cb618dcbc1e48df02a34b6596b8930"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 13:17:38 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 13:17:38 2009 -0700"
      },
      "message": "Merge change 1881 into donut\n\n* changes:\n  WifiService: Wifi power management change\n"
    },
    {
      "commit": "d9c32bc838cb618dcbc1e48df02a34b6596b8930",
      "tree": "cb7ff7abd7b1c2e99b5fcbfaebc7d19a9b4f5dfc",
      "parents": [
        "6342d3936ad8c9e6cf5bba1fc88c4e9338391bb4"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 18 14:14:15 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon May 18 15:54:16 2009 -0400"
      },
      "message": "WifiService: Wifi power management change\n\nPut Wifi into an idle state immediately if the screen is turned off and the Wifi interface has no IP address.\nWe will continue to keep Wifi up for 15 minutes in the case where the screen is turned off when Wifi is fully connected.\nThis will allow us to go into a low power mode faster when Wifi is not actively being used.\nIt also avoids bringing up Wifi if the user just turns on the screen for a few seconds to check the clock, etc.\n\nFixes bug b/1736920\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "d1a9337380cf9f40f1aa095457b11242d483295d",
      "tree": "efcd6973bca15ace831278f71b25c9923373b085",
      "parents": [
        "3a00d763dfb22982987e08f4c8751fe68451ed0d"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Thu May 14 17:54:31 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Mon May 18 10:47:24 2009 -0700"
      },
      "message": "Add a new window flag to display a window when keyguard is shown.\n"
    },
    {
      "commit": "e9e95e6f8ebc23a1c0350a8f06f10eb75869e8cc",
      "tree": "a10cd17d3b581d77e1c163bb52ef1f21b24d3b73",
      "parents": [
        "3e9b3eae7c7a825e7d2aa564353041205ba303b7",
        "3a00d763dfb22982987e08f4c8751fe68451ed0d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 10:39:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon May 18 10:39:02 2009 -0700"
      },
      "message": "am 3a00d763: Merge change 1866 into donut\n\nMerge commit \u00273a00d763dfb22982987e08f4c8751fe68451ed0d\u0027\n\n* commit \u00273a00d763dfb22982987e08f4c8751fe68451ed0d\u0027:\n  remove unused ContentResolver parameter from IntentResolver.queryIntent.\n"
    },
    {
      "commit": "074edef7c4fce50fc780e864068305f01965e3ac",
      "tree": "470dfecadad32412fdcf97b52118c549bbca9960",
      "parents": [
        "6342d3936ad8c9e6cf5bba1fc88c4e9338391bb4"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Mon May 18 17:13:31 2009 +0200"
      },
      "committer": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Mon May 18 17:13:31 2009 +0200"
      },
      "message": "remove unused ContentResolver parameter from IntentResolver.queryIntent.\n"
    },
    {
      "commit": "62da8461ed5317fe78ae5e3793662694e7fc99a3",
      "tree": "e82ca35be1ad67465407f6992e5e0f47fef73c39",
      "parents": [
        "53071d6d159f6dfd6fe0328a39bcf967ef308a64"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 13 15:06:13 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 15 18:23:56 2009 -0700"
      },
      "message": "Implement compatibility support for WRITE_SDCARD permission.\n\nNow old applications will automatically be granted it.  Also renamed it from\nSDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,\nand re-arranged how we do targetSdkVersion to actually be usuable for this\nkind of stuff.\n\nNote that right now this results in basically all apps being given the\nWRITE_SDCARD permission, because their targetSdkVersion is not set.  I will\nbe dealing with that in a future change.\n"
    },
    {
      "commit": "53071d6d159f6dfd6fe0328a39bcf967ef308a64",
      "tree": "ac04a583a672bc5bd76324615cce3d5a8f1e83af",
      "parents": [
        "4eebf590a3ad0197391e0ef7be4e67ca5583356f"
      ],
      "author": {
        "name": "Michael Chan",
        "email": "mchan@android.com",
        "time": "Wed May 13 17:29:48 2009 -0700"
      },
      "committer": {
        "name": "Michael Chan",
        "email": "mchan@android.com",
        "time": "Fri May 15 18:18:28 2009 -0700"
      },
      "message": "Added LatencyTimer to ease latency measurements\n\n\tnew file:   core/java/android/os/LatencyTimer.java\n\tmodified:   core/java/android/view/MotionEvent.java\n\tmodified:   core/java/android/view/ViewRoot.java\n\tmodified:   services/java/com/android/server/InputDevice.java\n\tmodified:   services/java/com/android/server/KeyInputQueue.java\n\tmodified:   services/java/com/android/server/WindowManagerService.java\n"
    },
    {
      "commit": "a96cbb435d7b2197ab2b61fd98d14cbd6e0c5c3d",
      "tree": "75e0804e6628f9bb818c5f6f918315640c721d4b",
      "parents": [
        "ba2a3a1b32e242eea4e97c927d886e8987fde3d4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed May 13 15:06:13 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri May 15 18:02:47 2009 -0700"
      },
      "message": "Implement compatibility support for WRITE_SDCARD permission.\n\nNow old applications will automatically be granted it.  Also renamed it from\nSDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,\nand re-arranged how we do targetSdkVersion to actually be usuable for this\nkind of stuff.\n\nNote that right now this results in basically all apps being given the\nWRITE_SDCARD permission, because their targetSdkVersion is not set.  I will\nbe dealing with that in a future change.\n"
    },
    {
      "commit": "47ee3bc78e6e44230f36ea1e850c3d55d4a07b57",
      "tree": "d4d49fb0a12dcbb6c552e6e5c2ac68c5394efdee",
      "parents": [
        "55051ebdd1ebf043f9d0e3dcf025c8c8930cf567"
      ],
      "author": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Thu May 14 22:34:04 2009 -0700"
      },
      "committer": {
        "name": "Rebecca Schultz Zavin",
        "email": "rebecca@android.com",
        "time": "Fri May 15 10:20:16 2009 -0700"
      },
      "message": "If battery status is unknown don\u0027t send BATTERY_LOW intent\n\nSigned-off-by: Rebecca Schultz Zavin \u003crebecca@android.com\u003e\n"
    },
    {
      "commit": "dd6face5a66ed6c9ac24b2754ec046b82881182c",
      "tree": "c9ab91b75db59bd663524cc29ef324508957fed2",
      "parents": [
        "76879bc2343779d4d2a870b7bd46b0544c0cc46c",
        "eae850cefe7e149f396c9e8ca1f34ec02b20a3f0"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Fri May 15 07:06:46 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri May 15 07:06:46 2009 -0700"
      },
      "message": "am eae850ce: Allow intent resolution to be constrained by package name.\n\nMerge commit \u0027eae850cefe7e149f396c9e8ca1f34ec02b20a3f0\u0027\n\n* commit \u0027eae850cefe7e149f396c9e8ca1f34ec02b20a3f0\u0027:\n  Allow intent resolution to be constrained by package name.\n"
    },
    {
      "commit": "eae850cefe7e149f396c9e8ca1f34ec02b20a3f0",
      "tree": "a4e19d75aeef5529a0a8084d513638890afac2cd",
      "parents": [
        "75986cf9bc57ef11ad70f36fb77fbbf5d63af6ec"
      ],
      "author": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Wed May 13 10:13:48 2009 +0200"
      },
      "committer": {
        "name": "Mihai Preda",
        "email": "preda@google.com",
        "time": "Fri May 15 12:32:07 2009 +0200"
      },
      "message": "Allow intent resolution to be constrained by package name.\n"
    },
    {
      "commit": "76879bc2343779d4d2a870b7bd46b0544c0cc46c",
      "tree": "9594c4c482eb8249e5406f0578013db22cf1ebab",
      "parents": [
        "e52a5a5fca18348728dfc5609b42b88e9cc7ef98",
        "75986cf9bc57ef11ad70f36fb77fbbf5d63af6ec"
      ],
      "author": {
        "name": "svetoslavganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 15 00:44:45 2009 -0700"
      },
      "committer": {
        "name": "svetoslavganov",
        "email": "svetoslavganov@google.com",
        "time": "Fri May 15 00:44:45 2009 -0700"
      },
      "message": "resolved conflicts w/ 75986cf9bc57ef11ad70f36fb77fbbf5d63af6ec merge....\n"
    },
    {
      "commit": "75986cf9bc57ef11ad70f36fb77fbbf5d63af6ec",
      "tree": "84e1843368037d24f83749d152f818d537267bfa",
      "parents": [
        "669ec3a6e47248fee0a3a0f4877b46875eb42140"
      ],
      "author": {
        "name": "svetoslavganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 14 22:28:01 2009 -0700"
      },
      "committer": {
        "name": "svetoslavganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu May 14 23:47:05 2009 -0700"
      },
      "message": "Accessibility feature - framework changes (replacing 698, 699, 700, 701 and merging with the latest Donut)\n"
    },
    {
      "commit": "aa2b7237d1e8c0c833fc19cd9d25a8d3700244a4",
      "tree": "411996ea372c198c155f01440b35dc26656951b5",
      "parents": [
        "d6ea77e1a4f6467e3154d56164330b0698010fe5",
        "2a5cfe519298702ef71ff8755b14f8daf6a92b2a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 14 14:53:35 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 14 14:53:35 2009 -0700"
      },
      "message": "am 2a5cfe51: Merge change 1590 into donut\n\nMerge commit \u00272a5cfe519298702ef71ff8755b14f8daf6a92b2a\u0027\n\n* commit \u00272a5cfe519298702ef71ff8755b14f8daf6a92b2a\u0027:\n  Add wifi multicast filter api (enable/disable).\n"
    },
    {
      "commit": "a64b860749ad7e5f9e887013d87b56b928c5d405",
      "tree": "f291ddd4fc94619955703f4d55f34c6d814df6c0",
      "parents": [
        "8f9ff7e77f73b2712f775245113ea53614485317",
        "aa642c0cc20293137376d44f8221876c121e5be9"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 14 14:53:27 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu May 14 14:53:27 2009 -0700"
      },
      "message": "am aa642c0c: Merge changes 1591,1596 into donut\n\nMerge commit \u0027aa642c0cc20293137376d44f8221876c121e5be9\u0027\n\n* commit \u0027aa642c0cc20293137376d44f8221876c121e5be9\u0027:\n  Get the backup calling through to the file backup helper.\n  Fix typos.\n  Add a new feature to android.os.Debug to add the ability to inject only specific fields when calling setFieldsOn().\n  Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.\n  Add Intent.ACTION_APP_ERROR\n"
    },
    {
      "commit": "2a5cfe519298702ef71ff8755b14f8daf6a92b2a",
      "tree": "51119ea6433cacc8b6b2b22c0bc8065005e01c58",
      "parents": [
        "4a8fb93f5e320f5bd5c1dd272339ae499e4b4ec4",
        "5347bd4cda2b6afc18f8acab48e52131f35ed13c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 14 13:24:52 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 14 13:24:52 2009 -0700"
      },
      "message": "Merge change 1590 into donut\n\n* changes:\n  Add wifi multicast filter api (enable/disable). Fixes 1833432.  Automatically re-disables any request when the app exits/crashes.  Also hooked into Battery Stats for power managment analysis.\n"
    },
    {
      "commit": "aa642c0cc20293137376d44f8221876c121e5be9",
      "tree": "0de40101e01c37de412c89f0115b6386dea0db97",
      "parents": [
        "d47d81a4de581a85a55b8ed5f3a1f08cb573ccec",
        "c4b11a79fb164310af03c1190622fe52e3695d2b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 14 11:59:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 14 11:59:33 2009 -0700"
      },
      "message": "Merge changes 1591,1596 into donut\n\n* changes:\n  Add a new feature to android.os.Debug to add the ability to inject only specific fields when calling setFieldsOn().\n  Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.\n"
    },
    {
      "commit": "290bb011c5c1a9ba1f2116810b06cf52a9c36b3e",
      "tree": "cfb9ce077d79021e86c1b8d7951f3655520f368d",
      "parents": [
        "ec2d74d40f9b7a8bf96feeb45a5d054d8b0ce0dd"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 18:57:29 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu May 14 09:39:32 2009 -0400"
      },
      "message": "Get the backup calling through to the file backup helper.\n\nThis includes some cleanup to make the parameters match\nbetween BackupService.onBackup and FileBackupHelper.performBackup.\n"
    },
    {
      "commit": "f0885c77948b16a93900bdaa312a7f362db8223d",
      "tree": "cf77ab42e16ec3cb5ed124d73bf2a073033414a4",
      "parents": [
        "560d210225f582f4691f4e60bdbf26e5f303a4c6",
        "b91081113692acc87ae67f235956ae1cecab68cc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "nobody@android.com",
        "time": "Wed May 13 18:15:19 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 13 18:15:19 2009 -0700"
      },
      "message": "am b910811: am 5d6d773: AI 148824: Fix issue #1851541 (sharedUserId requ\n\nMerge commit \u0027b91081113692acc87ae67f235956ae1cecab68cc\u0027\n\n* commit \u0027b91081113692acc87ae67f235956ae1cecab68cc\u0027:\n  AI 148824: Fix issue #1851541 (sharedUserId requests not being checked for matching signatures on .apk).\n"
    },
    {
      "commit": "b91081113692acc87ae67f235956ae1cecab68cc",
      "tree": "2293c2b090a3a5e342e69f830627b382f23e49ca",
      "parents": [
        "c4cdc7d8a1a42f0ce6e28c39f70cfceeee29a781",
        "5d6d773fab559fdc12e553d60d789f3991ac552c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "nobody@android.com",
        "time": "Wed May 13 18:13:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 13 18:13:17 2009 -0700"
      },
      "message": "am 5d6d773: AI 148824: Fix issue #1851541 (sharedUserId requests not bei\n\nMerge commit \u00275d6d773fab559fdc12e553d60d789f3991ac552c\u0027 into donut\n\n* commit \u00275d6d773fab559fdc12e553d60d789f3991ac552c\u0027:\n  AI 148824: Fix issue #1851541 (sharedUserId requests not being checked for matching signatures on .apk).\n"
    },
    {
      "commit": "5d6d773fab559fdc12e553d60d789f3991ac552c",
      "tree": "6188416dceccd82a180f6d478d366270e38ff93e",
      "parents": [
        "04c72b47d877c9f3b45caa1ddc7f640b02e7be4c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "nobody@android.com",
        "time": "Wed May 13 18:09:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 13 18:09:56 2009 -0700"
      },
      "message": "AI 148824: Fix issue #1851541 (sharedUserId requests not being checked for matching signatures on .apk).\n  To address issues where we could leave half-installed applications around if there was a failure during the install, we split getPackageLP() into two phases: the first would create the record, and only after doing all verification checks would we call insertPackageSettingLP() to do the remaining part of the original implementation and actually insert the record into the data structures.\n  Unfortunately it was only in insertPackageSettingLP() that we would set the sharedUser field of the PackageSetting structure, so when before that we went to verify certificates, we didn\u0027t think it had requested a shared user ID, and let it through without checking.\n  This fix simply sets the sharedUser field when the PackageSetting structure is first created, so we will actually check against its certs.  We still also set this again in insertPackageSettingLP(), but there is no harm in this because the only time we call this function is in that big install func, which just passes in the same shared user that it had when first getting the package.\n  BUG\u003d1851541\n\nAutomated import of CL 148824\n"
    },
    {
      "commit": "13922e03037d71a538f24ddf61c0b61bb4eb5af0",
      "tree": "e962dca19eee7c51affdfd8df7cf1fed0f541a8b",
      "parents": [
        "a2a34a5711bde03475b40edfe3cc052ece02700a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Tue May 12 17:56:14 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed May 13 15:42:23 2009 -0700"
      },
      "message": "Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.\n"
    },
    {
      "commit": "5347bd4cda2b6afc18f8acab48e52131f35ed13c",
      "tree": "af3c0e520ff5712344bd5174b7d02d24ef34c4e7",
      "parents": [
        "6347c322b36cdf6a30a35e80d205d00d40368e61"
      ],
      "author": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed May 13 15:10:16 2009 -0700"
      },
      "committer": {
        "name": "Robert Greenwalt",
        "email": "robdroid@android.com",
        "time": "Wed May 13 15:10:16 2009 -0700"
      },
      "message": "Add wifi multicast filter api (enable/disable).\nFixes 1833432.  Automatically re-disables any request when the app\nexits/crashes.  Also hooked into Battery Stats for power managment analysis.\n"
    },
    {
      "commit": "97ecc9cbe7eccafc0923d7655daf07f4c2ea9791",
      "tree": "3d57380415f1782f70a75b42d8f28234abf857cf",
      "parents": [
        "6a8d5332f00bdfade6674b312e7166940aa28348"
      ],
      "author": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Mon May 11 17:44:20 2009 -0700"
      },
      "committer": {
        "name": "Wei Huang",
        "email": "weih@google.com",
        "time": "Wed May 13 13:20:59 2009 -0700"
      },
      "message": "define Intent.ACTION_REMOTE_INTENT, which replaces the old GTalk data messaging intent \"android.intent.action.GTALK_DATA_MESSAGE_RECEIVED\".\n\nThe remote intent concept shouldn\u0027t be limited to Google or GTalkService. It should be owned by the Android platform.\n"
    },
    {
      "commit": "09b87a7d18752923b9a9c7034929c0b97bb69034",
      "tree": "7bc09f0331fe49b786765e0b28464ff3ee59a0f2",
      "parents": [
        "937809ccf9a30daec09371a38f39afdd6381489e",
        "8ad028117d4b99883bbc52b29f097b2fb1d9b0c2"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Tue May 12 22:49:11 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 12 22:49:11 2009 -0700"
      },
      "message": "am 8ad0281: With this, the BackupService onBackup method is called.\n\nMerge commit \u00278ad028117d4b99883bbc52b29f097b2fb1d9b0c2\u0027\n\n* commit \u00278ad028117d4b99883bbc52b29f097b2fb1d9b0c2\u0027:\n  With this, the BackupService onBackup method is called.\n"
    },
    {
      "commit": "8ad028117d4b99883bbc52b29f097b2fb1d9b0c2",
      "tree": "a51bb51a34be08f2e5ac408de902bb07a3f293a3",
      "parents": [
        "d39afbdc92e95e597c311e78ac32edaad27fcf0d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 01:41:44 2009 -0400"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Wed May 13 01:41:44 2009 -0400"
      },
      "message": "With this, the BackupService onBackup method is called.\n\nIt took a bunch of refactoring inside BackupManagerService,\nwhich is unfortunately all temporary anyway, but it unblocks\na bunch of stuff.\n"
    },
    {
      "commit": "d2b4929ba00939c1aa5037927f27427637cc2f68",
      "tree": "7aec3b9191499c5ef256d9e0f45966e2feec0315",
      "parents": [
        "7118a2cf547ed53900a7591ca93b99ee0508cea9",
        "ade3ecad94d1f4431576f53bae26c35efbf7a2c9"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 12 22:39:08 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue May 12 22:39:08 2009 -0700"
      },
      "message": "am ade3eca: Implement issue #1783881 (manifest option for adb-install-on\n\nMerge commit \u0027ade3ecad94d1f4431576f53bae26c35efbf7a2c9\u0027\n\n* commit \u0027ade3ecad94d1f4431576f53bae26c35efbf7a2c9\u0027:\n  Implement issue #1783881 (manifest option for adb-install-only apps)\n"
    },
    {
      "commit": "ade3ecad94d1f4431576f53bae26c35efbf7a2c9",
      "tree": "066fc83ddeb6c52011e13744152b594911895094",
      "parents": [
        "807f23b2d8c7148cf6fc95bb88cfc2f78e4be66a"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon May 11 18:54:45 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue May 12 16:09:43 2009 -0700"
      },
      "message": "Implement issue #1783881 (manifest option for adb-install-only apps)\n\nYou can now use android:testOnly\u003d\"true\" to not allow your .apk to be installed\nas a normal app.  The only way to do so is with the pm command and giving the\n-t option, which sets a new INSTALL_ALLOW_TEST flag when installing.\n\nI also used this to clean up the install API...  actually, mostly to hide\nit, since it is not accessible to apps so shouldn\u0027t be in the SDK.  We\nwill be doing some more work on it, so this will prevent adding yet\nanother backwards-compatibility-for-no-reason version.\n"
    },
    {
      "commit": "c64322c35212e919906ffd66118c7d5d3ad36636",
      "tree": "846d1a95480c87f18975245ceea201535e23c553",
      "parents": [
        "3e3439d5ba0cf5eda060c4991219c32af917fc5b"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue Apr 28 15:26:38 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue May 12 23:16:20 2009 +0200"
      },
      "message": "PackageManager keeps track of who installed what.\n\nStores the package name of the installer app in packages.xml\n"
    }
  ],
  "next": "9e5d5d6fac951d4d97c4d1df250f6a0f67a95c77"
}
