)]}'
{
  "log": [
    {
      "commit": "1a645058a85182371b581916deba501feaa7bb86",
      "tree": "7e1c76937fe7c344a732725806655b573a889346",
      "parents": [
        "2383415ab982ff156a85929f58029c0b863750c5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 25 13:01:12 2009 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Thu Jun 25 13:01:12 2009 -0400"
      },
      "message": "WifiService: Update all scan result values in our scan result cache.\n\nPreviously only the level was being updated, resulting in out of date values\nbeing left in the cache.\nPatch was provided by Motorola.\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "2383415ab982ff156a85929f58029c0b863750c5",
      "tree": "4fe9a9b3c6a167941bc7beba4f4e3503a7428f31",
      "parents": [
        "e92b1e7633188e9e72a237f84266d390bb4b87ed",
        "f881762f97c74253bbc7f629380bb65739457041"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 00:47:51 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 25 00:47:51 2009 -0700"
      },
      "message": "am f881762f: Merge change 5351 into donut\n\nMerge commit \u0027f881762f97c74253bbc7f629380bb65739457041\u0027\n\n* commit \u0027f881762f97c74253bbc7f629380bb65739457041\u0027:\n  Add a method to Process to get uid for a pid.\n"
    },
    {
      "commit": "819f928f6a9dc3fdf408236f33e17f03a7dfed2c",
      "tree": "e830a39404ad66b8a2bfc40ef7e96f0c2a85c014",
      "parents": [
        "c6a482e778e7b5fc5790edf22e554c93f53b1112"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 24 23:18:15 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 24 23:26:29 2009 -0700"
      },
      "message": "Add a method to Process to get uid for a pid.\n\nUse the uids to track native processes. Cache the uids to avoid\nchecking /proc every time.\n"
    },
    {
      "commit": "cc79800a741e4ee55ecfa7ec236b0087d83e41e4",
      "tree": "a81d0d8a8c79a76302788185fb1fbdf34adcc784",
      "parents": [
        "ecf2b68d834d334de218dc427615b4ca05c0293a",
        "5416d7c905e723a978ac29ccaf22a91b76e9d5c2"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 18:48:39 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 18:48:39 2009 -0700"
      },
      "message": "am 5416d7c9: Merge change 5317 into donut\n\nMerge commit \u00275416d7c905e723a978ac29ccaf22a91b76e9d5c2\u0027\n\n* commit \u00275416d7c905e723a978ac29ccaf22a91b76e9d5c2\u0027:\n  Start backing up wallpaper\n"
    },
    {
      "commit": "5416d7c905e723a978ac29ccaf22a91b76e9d5c2",
      "tree": "5e8734e0f37338c4321b9b414e121f616592a942",
      "parents": [
        "7941e903c973af66075bbd4fa4bcadf021a61ccc",
        "111bd4acdb378266221b430a284f88a3990a3958"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 18:46:59 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 18:46:59 2009 -0700"
      },
      "message": "Merge change 5317 into donut\n\n* changes:\n  Start backing up wallpaper\n"
    },
    {
      "commit": "111bd4acdb378266221b430a284f88a3990a3958",
      "tree": "1ca7da34b22ffc0ab846151633916e203544ecae",
      "parents": [
        "69e1f472c33e241f729c470285a5680866ede75c"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 24 17:29:38 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 24 18:45:56 2009 -0700"
      },
      "message": "Start backing up wallpaper\n\nThis CL does the following:\n   + adds an AbsoluteFileBackupHelper class for managing backup of files\n     known by absolute path, not based off of the app\u0027s getFilesDir() root\n   + bumps up the collection interval from its testing-only default of 1 second\n     to 3 minutes\n   + adds a SystemBackupAgent class to the main system package and names it as\n     the android:backupAgent for the main OS package.  Right now this agent\n     only backs up \u0026 restores the wallpaper file.\n   + amend the Wallpaper Service to inform the Backup Manager when the wallpaper\n     changes.\n\nOn the subject of the 3-minute collection interval before the backup actually\noccurs:  this can be short-circuited from an adb shell.  Running the command\n\u0027bmgr run\u0027 will cause the Backup Manager to kick off any pending backup\noperations immediately.\n"
    },
    {
      "commit": "ecf2b68d834d334de218dc427615b4ca05c0293a",
      "tree": "1fb611d557c89898300564ab336845146f8a571f",
      "parents": [
        "d2341b38923a5aab0ad3f0f782de426891aee18f",
        "7941e903c973af66075bbd4fa4bcadf021a61ccc"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 17:56:05 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 17:56:05 2009 -0700"
      },
      "message": "am 7941e903: Merge change 5091 into donut\n\nMerge commit \u00277941e903c973af66075bbd4fa4bcadf021a61ccc\u0027\n\n* commit \u00277941e903c973af66075bbd4fa4bcadf021a61ccc\u0027:\n  * new screen resolution support impl.\n"
    },
    {
      "commit": "7941e903c973af66075bbd4fa4bcadf021a61ccc",
      "tree": "43344dacf7cf25bd47a1d20bdf68dd57e82ab188",
      "parents": [
        "69e1f472c33e241f729c470285a5680866ede75c",
        "64f59342d41849bd365cb43fad7505d5e3daa417"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 17:53:57 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 17:53:57 2009 -0700"
      },
      "message": "Merge change 5091 into donut\n\n* changes:\n  * new screen resolution support impl.   * use full window for activities, and shift \u0026 clip the content   * refactored the compatibility code, and introdcued Translator class to handle cooridnate translations.   * removed a workaround to handle an activity with configChagne\u003drotation in old implementation.   * I\u0027ll fix background issue on rotation in next CL.\n"
    },
    {
      "commit": "e23ad63adf02e0079c75cba1cac912c08cae5c49",
      "tree": "c8c95d7006ba5d8c4290ef27d4a0f9e19150c59a",
      "parents": [
        "69866cea4dff6dfc6ccf36878593ce949faab9ea",
        "67669c9c1753b062fe2a71f89b589d01b32ba0f7"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 17:39:15 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 17:39:15 2009 -0700"
      },
      "message": "am 67669c9c: Merge change 5196 into donut\n\nMerge commit \u002767669c9c1753b062fe2a71f89b589d01b32ba0f7\u0027\n\n* commit \u002767669c9c1753b062fe2a71f89b589d01b32ba0f7\u0027:\n  Modify the IBackupTransport API to support bulk restore operations.\n"
    },
    {
      "commit": "67669c9c1753b062fe2a71f89b589d01b32ba0f7",
      "tree": "729bb3c925638802fdb42e67c508f08f85a3ff55",
      "parents": [
        "5158cc55088fec902320cafc02c746e3bf087a10",
        "efe52647f6b41993be43a5f47d1178bb0468cec8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 16:52:16 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 16:52:16 2009 -0700"
      },
      "message": "Merge change 5196 into donut\n\n* changes:\n  Modify the IBackupTransport API to support bulk restore operations. Change the BackupManagerService and LocalTransport to support the new API.\n"
    },
    {
      "commit": "efe52647f6b41993be43a5f47d1178bb0468cec8",
      "tree": "d0fc1dba5187836d7e8d318c65af780b400bfc0a",
      "parents": [
        "0bc7b8490b1575bb8266a3b0c6652d4f460fcda1"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jun 24 00:16:33 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jun 24 16:49:44 2009 -0700"
      },
      "message": "Modify the IBackupTransport API to support bulk restore operations.\nChange the BackupManagerService and LocalTransport to support the new API.\n"
    },
    {
      "commit": "afed82bca9e173cabe2c2f25314b202e5c1ccbca",
      "tree": "1179ebc7b545a1f51de557dc78fc2d141c8f1e74",
      "parents": [
        "465913c7ef4aac6124a281449c857106db3dd0a5",
        "9c8dd55a9d829c29a3feee9469d8c2f27a9f5516"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 24 16:25:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 16:25:26 2009 -0700"
      },
      "message": "am 9c8dd55a: Fix bug 1829561 (\"am profile\" with bad filename kills process).\n\nMerge commit \u00279c8dd55a9d829c29a3feee9469d8c2f27a9f5516\u0027\n\n* commit \u00279c8dd55a9d829c29a3feee9469d8c2f27a9f5516\u0027:\n  Fix bug 1829561 (\"am profile\" with bad filename kills process).\n"
    },
    {
      "commit": "9c8dd55a9d829c29a3feee9469d8c2f27a9f5516",
      "tree": "deb1f95fbdc6972bf1d50fffb79ef2c74731314b",
      "parents": [
        "0bc7b8490b1575bb8266a3b0c6652d4f460fcda1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 23 19:22:52 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 24 16:23:14 2009 -0700"
      },
      "message": "Fix bug 1829561 (\"am profile\" with bad filename kills process).\n\nThe am command is now the one that takes care of opening the target file,\nhandling the opened file descriptor to the process that will be profiled.\nThis allows you to send profile data to anywhere the shell can access, and\navoids any problems coming up from the target process trying to open the\nfile.\n"
    },
    {
      "commit": "4c74637833c6dc41f5c51897cd78a037e0cc18ee",
      "tree": "472ccebf67ff0c9347d1b1c073655e28064d5c05",
      "parents": [
        "372cecd692a39bc72a3d508755b5fb7a0d29618e",
        "3e376a74b3edd8c311e8d69ca5baf986c9da4a06"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 15:45:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 15:45:49 2009 -0700"
      },
      "message": "am 3e376a74: Merge change 5171 into donut\n\nMerge commit \u00273e376a74b3edd8c311e8d69ca5baf986c9da4a06\u0027\n\n* commit \u00273e376a74b3edd8c311e8d69ca5baf986c9da4a06\u0027:\n  Track native processes and airplane mode.\n"
    },
    {
      "commit": "32dbefda71c50bf848da21fb5d1255273439f90d",
      "tree": "b73db68d5802a75471a85fb93fa7109054e05a30",
      "parents": [
        "4133751d51a04172aa65e24658b4207ef764de91"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Jun 19 09:21:17 2009 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Jun 24 11:17:36 2009 -0700"
      },
      "message": "Track native processes and airplane mode.\n\nTurn signal strengths on/off when toggling airplane mode.\n"
    },
    {
      "commit": "5a12373277f6ce14101f08580bc4f08f9a3d7c50",
      "tree": "c25822c436308b2496b08b88dc1916b672802ba7",
      "parents": [
        "6b3ade68e0a2541600dc8bcc803c7b3d061b2153"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Tue Jun 23 14:57:08 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed Jun 24 16:12:42 2009 +0200"
      },
      "message": "Add exception line number to ApplicationErrorReport\n"
    },
    {
      "commit": "64f59342d41849bd365cb43fad7505d5e3daa417",
      "tree": "b0cef479b2674ee78a8bff6e833224850a36f2ab",
      "parents": [
        "5a42b08389f3fe9195930ce5d2998e68bb09b748"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Sun Jun 21 00:03:11 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Tue Jun 23 23:11:55 2009 -0700"
      },
      "message": "* new screen resolution support impl.\n  * use full window for activities, and shift \u0026 clip the content\n  * refactored the compatibility code, and introdcued Translator class to handle cooridnate translations.\n  * removed a workaround to handle an activity with configChagne\u003drotation in old implementation.\n  * I\u0027ll fix background issue on rotation in next CL.\n\n  * removed unnecessary scaling code in SurfaceView, which I forgot to remove when I changed SurfaceView\n    not to scale the content.\n"
    },
    {
      "commit": "4c279770347b387890bb9eb90d9c96ad07e6f9e9",
      "tree": "dc05c75c0687a0ecf2ca89d2bf8dfcaec7e651e8",
      "parents": [
        "ffa5a5a3dbef79dc6958c629080b1a6438a7b637",
        "722baf5ec47b57020ac39ec3e2b6cd1a02c3c4db"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 22:04:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 22:04:53 2009 -0700"
      },
      "message": "am 722baf5e: Merge change 5014 into donut\n\nMerge commit \u0027722baf5ec47b57020ac39ec3e2b6cd1a02c3c4db\u0027\n\n* commit \u0027722baf5ec47b57020ac39ec3e2b6cd1a02c3c4db\u0027:\n  Fix issue #1933587.  Perform dexopt of instrumentation .apks.\n"
    },
    {
      "commit": "3edc89fc5777e1c34f9a7fa072a562af6968ef88",
      "tree": "bd4726a46050da5bbb5e5b4b03c09c8704a261c6",
      "parents": [
        "cbf2f599ec066c6a4f33b3015d54fe2294404d6b",
        "54f156c7c47bd5b5f2c9675f56bddaaa43ad162e"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 19:47:24 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 19:47:24 2009 -0700"
      },
      "message": "am 54f156c7: Merge change 5006 into donut\n\nMerge commit \u002754f156c7c47bd5b5f2c9675f56bddaaa43ad162e\u0027\n\n* commit \u002754f156c7c47bd5b5f2c9675f56bddaaa43ad162e\u0027:\n  Pass the originating app\u0027s versionCode along with a restore set\n"
    },
    {
      "commit": "722baf5ec47b57020ac39ec3e2b6cd1a02c3c4db",
      "tree": "6d24dec955f30f03b1b6e268df7320b22f410f97",
      "parents": [
        "5277103db9033226814edc8fcba6f4ba4e846678",
        "d7f6daa5d182f21b41782057e8a9b72f7a1eb54a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 18:30:05 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 18:30:05 2009 -0700"
      },
      "message": "Merge change 5014 into donut\n\n* changes:\n  Fix issue #1933587.  Perform dexopt of instrumentation .apks.\n"
    },
    {
      "commit": "d7f6daa5d182f21b41782057e8a9b72f7a1eb54a",
      "tree": "e373d3d928df396f8362e64974f4268edb0d4839",
      "parents": [
        "ecfb9f91afa49df7b9b62526dcaca431b5ff1e01"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 22 17:06:35 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 22 17:06:35 2009 -0700"
      },
      "message": "Fix issue #1933587.  Perform dexopt of instrumentation .apks.\n"
    },
    {
      "commit": "5cbbf5652a78902ac3382dc4a3583bc5b0351027",
      "tree": "58a0d7260ed8c441b638f6197b885d3b16656465",
      "parents": [
        "3a31a93b8a195ae2d0180e6dfbf292da2e581f50"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 22 16:44:51 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 22 16:44:51 2009 -0700"
      },
      "message": "Pass the originating app\u0027s versionCode along with a restore set\n\nThis change amends the doRestore() / onRestore() interface to backup agents to\nprovide the integer android:versionCode of the app that stored the backup set.\nThis should help agents figure out how to handle whatever historical data set\nthey\u0027re handed at restore time.\n"
    },
    {
      "commit": "5196d12a12dfcfb8b7deb74d74d69496f8e12b02",
      "tree": "c1d6bfaf49754951615c9d5996bdc3fbd7fddde2",
      "parents": [
        "cb85ef6a8b58f9fe04a1b0f397119353c82f3146",
        "3a31a93b8a195ae2d0180e6dfbf292da2e581f50"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 22 15:19:51 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 15:19:51 2009 -0700"
      },
      "message": "am 3a31a93b: Add some global metadata to the restore set\n\nMerge commit \u00273a31a93b8a195ae2d0180e6dfbf292da2e581f50\u0027\n\n* commit \u00273a31a93b8a195ae2d0180e6dfbf292da2e581f50\u0027:\n  Add some global metadata to the restore set\n"
    },
    {
      "commit": "3a31a93b8a195ae2d0180e6dfbf292da2e581f50",
      "tree": "a834618fe7ecf9cbb25f799c2fd558075dfc5eda",
      "parents": [
        "e146d824785078fed578f88b11ff47a7390d27c5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 22 15:10:30 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 22 15:14:04 2009 -0700"
      },
      "message": "Add some global metadata to the restore set\n\nIn addition to the signatures of each participating application, we now also\nstore the versionCode of each backed-up package, plus the OS version running on\nthe device that contributed the backup set.  We also refuse to process a backup\nfrom a later OS revision to an earlier one, or from a later app version to an\nearlier.\n\nLocalTransport has been modified as well to be more resilient to changes in the\nsystem\u0027s use of metadata pseudopackages.\n"
    },
    {
      "commit": "4527acb0c39258792ae55604cb4d71006bf8d938",
      "tree": "f1e2b09db0abc31c15d56ec7e718a09aabd00861",
      "parents": [
        "ffe4ddfe95e8b31e0cb579ab537a1373f6208bcc",
        "856dd8a60a70a5b7dca2bf2114872ce063e2ad60"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 13:20:31 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 13:20:31 2009 -0700"
      },
      "message": "am 856dd8a6: Merge change 4952 into donut\n\nMerge commit \u0027856dd8a60a70a5b7dca2bf2114872ce063e2ad60\u0027\n\n* commit \u0027856dd8a60a70a5b7dca2bf2114872ce063e2ad60\u0027:\n  Helper API cleanup.  Allows multiple helpers to function,\n"
    },
    {
      "commit": "856dd8a60a70a5b7dca2bf2114872ce063e2ad60",
      "tree": "1ca8a159484890b5db5dcce3ca92e921e80f03e5",
      "parents": [
        "eb717b9c4337e5b88664802b0804f4cb48758120",
        "06290a4bb9b280fa14a2bbeb2d3ceb09396a78c3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 13:18:09 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 13:18:09 2009 -0700"
      },
      "message": "Merge change 4952 into donut\n\n* changes:\n  Helper API cleanup.  Allows multiple helpers to function, because they\u0027ll always go in the same order, and this lets us not have to write headers to keep them paired.\n"
    },
    {
      "commit": "06290a4bb9b280fa14a2bbeb2d3ceb09396a78c3",
      "tree": "15fccf5ce4e9c42bba3fc7581ac2ddc0d8363dc9",
      "parents": [
        "eed76b2a8ddc41af01cd3ae87c4722f3784c975c"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 20:10:37 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Mon Jun 22 13:02:24 2009 -0700"
      },
      "message": "Helper API cleanup.  Allows multiple helpers to function,\nbecause they\u0027ll always go in the same order, and this lets\nus not have to write headers to keep them paired.\n"
    },
    {
      "commit": "92eef877ca93b40b43efedb03324e230cbe2ab4c",
      "tree": "ddbd6b8815807e8f26bd69a55246819b7c867390",
      "parents": [
        "90c8f83538cc9dd79e68d167263095b98870fed4",
        "07a5f126df2cf0dbeb7096535ae634ea8eaeb306"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 10:56:47 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 10:56:47 2009 -0700"
      },
      "message": "am 07a5f126: Merge change 4754 into donut\n\nMerge commit \u002707a5f126df2cf0dbeb7096535ae634ea8eaeb306\u0027\n\n* commit \u002707a5f126df2cf0dbeb7096535ae634ea8eaeb306\u0027:\n  At boot time, add additional per-device information to the\n"
    },
    {
      "commit": "07a5f126df2cf0dbeb7096535ae634ea8eaeb306",
      "tree": "8d24267d7acce913adf101c5c1b2f1df45dc39c6",
      "parents": [
        "d6dd686bc7adba448af1bc36a022cddba9f9561f",
        "b8cba95ffd4d9be0edace7a9eb42286e668ef3e3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 10:55:25 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 10:55:25 2009 -0700"
      },
      "message": "Merge change 4754 into donut\n\n* changes:\n  At boot time, add additional per-device information to the kernel randomness pool.  This helps increase the quality / uniqueness of the random numbers, and is especially important during the device\u0027s first boot, when insufficient randomness is available.\n"
    },
    {
      "commit": "72875cc599815387b9e0e774333129d0ee73f0a0",
      "tree": "04cccb4b65384c494f4ddd2e1c72960efe099cd1",
      "parents": [
        "82bc988eb3e9d4f2e0b7352b1cc9bff9f2bc4aa7",
        "6bf1208c58ab2c39f95c733a22df882c7a59f4fc"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 10:41:07 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 22 10:41:07 2009 -0700"
      },
      "message": "am 6bf1208c: Merge change 4827 into donut\n\nMerge commit \u00276bf1208c58ab2c39f95c733a22df882c7a59f4fc\u0027\n\n* commit \u00276bf1208c58ab2c39f95c733a22df882c7a59f4fc\u0027:\n  Fix issue with shared user permissions.\n"
    },
    {
      "commit": "6bf1208c58ab2c39f95c733a22df882c7a59f4fc",
      "tree": "9ed92d8ec7b89cd5cfcb017203ce33a752e27e95",
      "parents": [
        "be7f0f78afde931ce6ea2d4ba61c340fac5722f6",
        "b97b8f88063e64449da6d27a48b711ac60ccc6c8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 10:39:15 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 22 10:39:15 2009 -0700"
      },
      "message": "Merge change 4827 into donut\n\n* changes:\n  Fix issue with shared user permissions. just look in the requested permissions of packages within shared user setting rather than the granted permissions\n"
    },
    {
      "commit": "b8cba95ffd4d9be0edace7a9eb42286e668ef3e3",
      "tree": "cf7c94031e0f4a59333127af74469bb07d10c6e7",
      "parents": [
        "649f99e8347984c1e031dae302830f4c9ebd3df4"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Jun 19 09:45:35 2009 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Mon Jun 22 10:37:50 2009 -0700"
      },
      "message": "At boot time, add additional per-device information to the\nkernel randomness pool.  This helps increase the\nquality / uniqueness of the random numbers, and is especially\nimportant during the device\u0027s first boot, when insufficient\nrandomness is available.\n"
    },
    {
      "commit": "8afc1e97e0cb8e5aae42f12f6decd895bf3aba7a",
      "tree": "e105a1bf09837307b58c453891f57ba22be37473",
      "parents": [
        "fc68623c03439db95401a18a435dbc491cd7f6fd",
        "b92c45a4bc4331378a31bb4bc84de02fa631a247"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 16:44:10 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 16:44:10 2009 -0700"
      },
      "message": "am b92c45a4: Merge change 4831 into donut\n\nMerge commit \u0027b92c45a4bc4331378a31bb4bc84de02fa631a247\u0027\n\n* commit \u0027b92c45a4bc4331378a31bb4bc84de02fa631a247\u0027:\n  Add app version to the backup metadata\n"
    },
    {
      "commit": "b97b8f88063e64449da6d27a48b711ac60ccc6c8",
      "tree": "fbbea4d73d785964031fe8d54c0dcab03aafdab6",
      "parents": [
        "6afe81339ed973f1ef4a6c30110d5ce3b001ea4c"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 15:09:18 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 16:02:27 2009 -0700"
      },
      "message": "Fix issue with shared user permissions.\njust look in the requested permissions of packages within shared user setting rather than the granted permissions\n"
    },
    {
      "commit": "6aa41f4c575479672661f7eb4c704ef59d26a629",
      "tree": "5af2115ba57391f6ec3e057487e6b539886034de",
      "parents": [
        "3af8e9389e008c0076b86cc6b3c6f005e7473d10"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 19 14:14:22 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 19 15:24:51 2009 -0700"
      },
      "message": "Add app version to the backup metadata\n\nWe now record the version number of the app (drawn from its manifest versionCode\nattribute) along with its signatures.  At restore time, we compare the version\nassociated with the restore set with the version present on the device.  If the\nrestore set is from a newer version of the app than is present on device, we do\nnot perform the restore operation.\n\nAlso fix the pending-backup iteration in \u0027dumpsys backup\u0027.\n"
    },
    {
      "commit": "cd83fd74ad77f494893d01b308c227e46ec59596",
      "tree": "dea144616097d124f7fcca01fad121427c0b0827",
      "parents": [
        "451c7fc49d65b93242e3dbbaae5c0625afca6598",
        "82a73dfb27e9766ffffa4ece032a06471c646575"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:59:48 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 13:59:48 2009 -0700"
      },
      "message": "Merge change 4815\n\n* changes:\n  GoogleFeedback handles errors in core apps.\n"
    },
    {
      "commit": "82a73dfb27e9766ffffa4ece032a06471c646575",
      "tree": "3da7c2b51cb2a47861ed6702eec78f099f7f6287",
      "parents": [
        "bd9ae1c2548a2aeafa0076e798e9499eeb3c7d32"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed Jun 17 14:33:18 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Fri Jun 19 22:05:02 2009 +0200"
      },
      "message": "GoogleFeedback handles errors in core apps.\n\nAdds support for system properties:\n  ro.error.receiver.system.apps - default error report receiver for system apps\n  ro.error.receiver.default - fallback error report receiver\n"
    },
    {
      "commit": "c13713519dd92f0008415bef8499d85bd7e3edb4",
      "tree": "c66d19b944b1ce328fc8cd3fd50c14dd918bb70e",
      "parents": [
        "36adccf74fcc58aa0cc8b2a79abefec7c22a867d",
        "3d74bb4ab27ae9601f5c9c3706fad287845fb672"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 11:49:27 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 11:49:27 2009 -0700"
      },
      "message": "am 3d74bb4a: Add \"why?\" button to low battery dialog.\n\nMerge commit \u00273d74bb4ab27ae9601f5c9c3706fad287845fb672\u0027\n\n* commit \u00273d74bb4ab27ae9601f5c9c3706fad287845fb672\u0027:\n  Add \"why?\" button to low battery dialog.\n"
    },
    {
      "commit": "3d74bb4ab27ae9601f5c9c3706fad287845fb672",
      "tree": "535a85ff083f52453637c2ece5d643e79276c142",
      "parents": [
        "03255de32d127d17504b6d475e6e79190dd637f8"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 10:35:21 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 19 11:46:58 2009 -0700"
      },
      "message": "Add \"why?\" button to low battery dialog.\n\nThis takes the user to the power usage activity.\n"
    },
    {
      "commit": "c73e9ad55a28f6bec3260e919573e0597fdd23ab",
      "tree": "e669fa2a59927d4136b1d3ad2340ea10cf4d436e",
      "parents": [
        "903ccf479f7c06cd17f581b6633f2575d7dc7a60",
        "bc806f65edc33f6eda0f475ac84e5e037a013a90"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 10:38:45 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 19 10:38:45 2009 -0700"
      },
      "message": "am bc806f65: Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n\nMerge commit \u0027bc806f65edc33f6eda0f475ac84e5e037a013a90\u0027\n\n* commit \u0027bc806f65edc33f6eda0f475ac84e5e037a013a90\u0027:\n  Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n"
    },
    {
      "commit": "bc806f65edc33f6eda0f475ac84e5e037a013a90",
      "tree": "086604fbc605d4b416e85b565227ffb7e489d1d7",
      "parents": [
        "2b1aed1021fb472de83c4c0143f2c4452244a0af"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 15:18:19 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 19 10:25:37 2009 -0700"
      },
      "message": "Remove deprecated api. Aptly rename freeStorageWithIntent to freeStorage.\n"
    },
    {
      "commit": "061c3b505814053513741eb2c13e75a322ce9b20",
      "tree": "37b07275f0af77bd5eef8854f5aad53c135ba1e0",
      "parents": [
        "ba165caf441f25e180922f83ce02f91d6e0012f2",
        "fd5f087536dcb04ac9c46f2b19f87a37455390b0"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 20:51:09 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 20:51:09 2009 -0700"
      },
      "message": "am fd5f0875: Merge change 4721 into donut\n\nMerge commit \u0027fd5f087536dcb04ac9c46f2b19f87a37455390b0\u0027\n\n* commit \u0027fd5f087536dcb04ac9c46f2b19f87a37455390b0\u0027:\n  Make signature checks on restore work with unsigned apps\n"
    },
    {
      "commit": "20efdf6b56e54b0520d8629cd706045dc8d280d3",
      "tree": "8f1a5cd2f092c418c93e234c61ad6bcefc72e9fd",
      "parents": [
        "63e7155c7d1d0c3f0027400aa09e9a45f648a80d"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 19:41:36 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 19:42:24 2009 -0700"
      },
      "message": "Make signature checks on restore work with unsigned apps\n"
    },
    {
      "commit": "8dbbe3b52f815c49be986814743a521f802b4785",
      "tree": "78ed9bc346ec5f1edfe702dbb74ea16e7b6b99af",
      "parents": [
        "f923ed6ff76a0fd022bcc83e748e82266ba4ed1b",
        "63e7155c7d1d0c3f0027400aa09e9a45f648a80d"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:35:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:35:32 2009 -0700"
      },
      "message": "am 63e7155c: Merge change 4696 into donut\n\nMerge commit \u002763e7155c7d1d0c3f0027400aa09e9a45f648a80d\u0027\n\n* commit \u002763e7155c7d1d0c3f0027400aa09e9a45f648a80d\u0027:\n  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n"
    },
    {
      "commit": "63e7155c7d1d0c3f0027400aa09e9a45f648a80d",
      "tree": "1f3bf9743613460533de9df78f2c8c5cd65cf070",
      "parents": [
        "5502f04c1dcf2b1918858bacb99fb0480a711707",
        "5c1e00b14d2ef10ec76abf3e951fa8003a67f558"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:33:33 2009 -0700"
      },
      "message": "Merge change 4696 into donut\n\n* changes:\n  Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n"
    },
    {
      "commit": "f923ed6ff76a0fd022bcc83e748e82266ba4ed1b",
      "tree": "43cf39771f98ee89b714ddd9bb791d43addf8aa8",
      "parents": [
        "1c14776a13546fc2642baa251c8f1b7c545b0272",
        "5502f04c1dcf2b1918858bacb99fb0480a711707"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 19:04:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 19:04:56 2009 -0700"
      },
      "message": "am 5502f04c: Merge change 4709 into donut\n\nMerge commit \u00275502f04c1dcf2b1918858bacb99fb0480a711707\u0027\n\n* commit \u00275502f04c1dcf2b1918858bacb99fb0480a711707\u0027:\n  backup stuff\n"
    },
    {
      "commit": "610a0af4e34c3476863200ae1db70a9c5d8b582f",
      "tree": "57fcd38d990893cc3e8e15c76c7035e100f6384f",
      "parents": [
        "6e9aa305d9fedbfe17833c899be2f9745267e5a1",
        "abce4e8714bed26a2b37b20ad3f02cf619d71c9a"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 18:42:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 18:42:02 2009 -0700"
      },
      "message": "am abce4e87: Use signatures on restore\n\nMerge commit \u0027abce4e8714bed26a2b37b20ad3f02cf619d71c9a\u0027\n\n* commit \u0027abce4e8714bed26a2b37b20ad3f02cf619d71c9a\u0027:\n  Use signatures on restore\n"
    },
    {
      "commit": "5d605dc56b036232e885f6ec36b888b729673060",
      "tree": "8a29f6a2feb495cbac08bb43b08e0ca9b8cf7dce",
      "parents": [
        "d2d9ceb7305d593c1b767bbb05de0082a9af4109"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:23:43 2009 -0700"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@android.com",
        "time": "Thu Jun 18 18:41:11 2009 -0700"
      },
      "message": "backup stuff\n"
    },
    {
      "commit": "abce4e8714bed26a2b37b20ad3f02cf619d71c9a",
      "tree": "274cf438fcda8dca4b13a056bc73fea61ba4dd77",
      "parents": [
        "2810f681991d1beb5ceb3515159f9fad3cc341d5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 18:35:32 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 18:38:02 2009 -0700"
      },
      "message": "Use signatures on restore\n\nOn restore now, the backup manager gets the signature blocks corresponding to\nthe restore set from the transport.  It then validates those signatures against\nthe on-device app signatures, and refuses to restore data to an app whose\non-device sig block does not match the backup image\u0027s.\n\nAlso actually implement \u0027bmgr transport N\u0027 so that we can select the local\ntransport easily during runtime.\n"
    },
    {
      "commit": "5c1e00b14d2ef10ec76abf3e951fa8003a67f558",
      "tree": "fa723a6f96f5b977dfdfdc08b5b8aab98c20d500",
      "parents": [
        "e748161ca89867e8c57d4e71c780486d4de8039c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Jun 18 17:10:57 2009 -0700"
      },
      "message": "Fix targetSdkVersion, make resize mode a flag, delayed dexopt, easy ApplicationInfo.\n\n- Fix a bug where targetSdkVersion could not be set if minSdkVersion.  Stupid, stupid.\n  Also make sure to fail if minSdkVersion is for a code name.  Really stupid.\n\n- Change the API for resize compatibility mode to be a bit in the flags field, instead\n  of a separate boolean.\n\n- Implement delayed dexopting, to avoid the looong full dexopt during boot.  This is\n  only enabled for \"eng\" builds.  When in this mode, the activity manager will make\n  sure that a dexopt has been done before loading an .apk into a process, and will\n  try to avoid displaying ANRs if they are due to the dexopt causing some operation\n  to take longer than it normally would (though I make no guarantees about this\n  totally working).\n\n- Add API to Context to get the ApplicationInfo for its package, for easy access to\n  things like targetSdkVersion.\n"
    },
    {
      "commit": "5c2f39af8dcb10b7505bda8972fff7931252eff8",
      "tree": "bca7d7a02e81b0b55efd57bf4308cebb4deb1c94",
      "parents": [
        "351b36c414b31e720532850761d95a9ec12ee8b4",
        "167dbe0bf1f8d807d1ced400f146b7780eb6c721"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:07:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 17:07:29 2009 -0700"
      },
      "message": "am 167dbe0b: Merge change 4670 into donut\n\nMerge commit \u0027167dbe0bf1f8d807d1ced400f146b7780eb6c721\u0027\n\n* commit \u0027167dbe0bf1f8d807d1ced400f146b7780eb6c721\u0027:\n  Update RandomBlock to use RandomAccessFile.  This helps\n"
    },
    {
      "commit": "167dbe0bf1f8d807d1ced400f146b7780eb6c721",
      "tree": "deec759d42c4364a9363674d337374b635de4f6b",
      "parents": [
        "0bceb77b004a688ca044b794e0622385c6e2953d",
        "2854254c2f59544d682d41ffee4fc1e1f2a604a3"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:05:19 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 17:05:19 2009 -0700"
      },
      "message": "Merge change 4670 into donut\n\n* changes:\n  Update RandomBlock to use RandomAccessFile.  This helps prevent certain unusual conditions from corrupting the entropy file.  (for example, if Android should happen to crash while a write is in progress)\n"
    },
    {
      "commit": "e4839c4325e61ee23adf3fef1bf651f4754bbfec",
      "tree": "686c5f310458c2fe9b68ecc7544e8f388a0d6dc4",
      "parents": [
        "eba76ad5c80b703999095b2445fad9178f5000b2",
        "07eac016446c63711bebe6e553e98c02d1fe55a5"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 16:17:12 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 16:17:12 2009 -0700"
      },
      "message": "am 07eac016: Merge change 4682 into donut\n\nMerge commit \u002707eac016446c63711bebe6e553e98c02d1fe55a5\u0027\n\n* commit \u002707eac016446c63711bebe6e553e98c02d1fe55a5\u0027:\n  Store the app signatures as part of the backup set\n"
    },
    {
      "commit": "07eac016446c63711bebe6e553e98c02d1fe55a5",
      "tree": "413817514a1a5f6d7f232947a1eb1e61e89d1ed3",
      "parents": [
        "c9dc19bb96d2d77ec50f6e40fc22d1ff615f2044",
        "6785dd842075889e5230d93ed9c0ab9c204ab432"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 16:15:47 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 16:15:47 2009 -0700"
      },
      "message": "Merge change 4682 into donut\n\n* changes:\n  Store the app signatures as part of the backup set\n"
    },
    {
      "commit": "6785dd842075889e5230d93ed9c0ab9c204ab432",
      "tree": "7b7c6894f0c80254a3ceb4e14f9c113a5edeb6b6",
      "parents": [
        "df1ff2cb332ad2d819671f1e78e5bd68d758ca54"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 15:58:25 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 18 15:58:25 2009 -0700"
      },
      "message": "Store the app signatures as part of the backup set\n\nUnder a pseudo-app for the Package Manager, we store the app signatures for all\nparticipating applications installed on the device.  At restore time we will\nrestore this first, then ensure that the current on-device signature chain is\ncompatible with the one in the backup set.  If there\u0027s a mismatch, this may be a\nspoof attempt and we will refuse to restore that app\u0027s data.\n\nThe restore side of this is not implemented, but the Package Manager agent is\nhere as well as the backup side theoretically pushing the data now.\n"
    },
    {
      "commit": "2854254c2f59544d682d41ffee4fc1e1f2a604a3",
      "tree": "189b267f10f5ac94a00934cee7c5e3fca01ac68e",
      "parents": [
        "77dcf735ff3115ef20244408313823d489d88143"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 18 15:23:17 2009 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 18 15:23:17 2009 -0700"
      },
      "message": "Update RandomBlock to use RandomAccessFile.  This helps\nprevent certain unusual conditions from corrupting the\nentropy file.  (for example, if Android should happen to\ncrash while a write is in progress)\n"
    },
    {
      "commit": "a791bc070f1ea0008781ef67b22945282285d5f6",
      "tree": "c04676e5a5393b7fa7b68c772ffa6950150b1c0c",
      "parents": [
        "ecde11351dca9ef57eaf5037dd1c52bcb49047b0",
        "5ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 12:00:41 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 12:00:41 2009 -0700"
      },
      "message": "am 5ad76ef5: Merge change 4521 into donut\n\nMerge commit \u00275ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe\u0027\n\n* commit \u00275ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe\u0027:\n  load entropy data at boot.  Periodically write entropy data to disk.\n"
    },
    {
      "commit": "5ad76ef5ee1b437b4c07ed0be78ec7cc16c81dfe",
      "tree": "678a5ed37827560b44aeab6f93e56225722421a3",
      "parents": [
        "df1ff2cb332ad2d819671f1e78e5bd68d758ca54",
        "4fb256117ca271e3e37284a19b663d116f6ec20c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 11:58:54 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 11:58:54 2009 -0700"
      },
      "message": "Merge change 4521 into donut\n\n* changes:\n  load entropy data at boot.  Periodically write entropy data to disk.\n"
    },
    {
      "commit": "4fb256117ca271e3e37284a19b663d116f6ec20c",
      "tree": "1882f2a0a7e69dfeeb1238c9690a560c8d2ec77e",
      "parents": [
        "3f4263fac6bcc68b3c7fff8e6ac9ad2d97b2ad4c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Jun 17 16:03:22 2009 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Jun 18 11:00:19 2009 -0700"
      },
      "message": "load entropy data at boot.  Periodically write entropy data to disk.\n"
    },
    {
      "commit": "abb01dba70fa52b3576fa9f6a175f3840b959fde",
      "tree": "1c6d7ce021830cc831488c5ee116565defc29bc5",
      "parents": [
        "cc4b106f736ceab3680b19a4cd7e14be2be8f341",
        "c14b9ccdf13163cae5ce5d21bcf377010b37594b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 22:45:54 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 22:45:54 2009 -0700"
      },
      "message": "am c14b9ccd: Extend Intent/Uri conversion for use by Browser\n\nMerge commit \u0027c14b9ccdf13163cae5ce5d21bcf377010b37594b\u0027\n\n* commit \u0027c14b9ccdf13163cae5ce5d21bcf377010b37594b\u0027:\n  Extend Intent/Uri conversion for use by Browser\n"
    },
    {
      "commit": "cc4b106f736ceab3680b19a4cd7e14be2be8f341",
      "tree": "8cc60407d4bf8e3ec11039f7f3c28d17fcb2bcdf",
      "parents": [
        "c452b4e86e5ff6ea4811d9d5041d06e541c43bb3",
        "e64bb1dd9ed68281af9968cf2cd23b4e49ead76c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 22:45:51 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 22:45:51 2009 -0700"
      },
      "message": "am e64bb1dd: Merge change 4579 into donut\n\nMerge commit \u0027e64bb1dd9ed68281af9968cf2cd23b4e49ead76c\u0027\n\n* commit \u0027e64bb1dd9ed68281af9968cf2cd23b4e49ead76c\u0027:\n  Fix issue #1924851\n"
    },
    {
      "commit": "c0f088b06b1b09157f5727246dcf3ebb6ac7b17b",
      "tree": "d23aa8f531eddcbe68c4f979a155ec22bacaccba",
      "parents": [
        "72dcea1eed882123c3f9285f2ab908f530993609",
        "3c2f8e6651178742bc685e7bd62fa8a6ca409a74"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 21:49:56 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 21:49:56 2009 -0700"
      },
      "message": "am 3c2f8e66: Merge change 4456 into donut\n\nMerge commit \u00273c2f8e6651178742bc685e7bd62fa8a6ca409a74\u0027\n\n* commit \u00273c2f8e6651178742bc685e7bd62fa8a6ca409a74\u0027:\n  Replace the stub GoogleTransport with callout to the\n"
    },
    {
      "commit": "c14b9ccdf13163cae5ce5d21bcf377010b37594b",
      "tree": "45c2309b18ff4e56aef65e0c7d66f8800492e33e",
      "parents": [
        "e64bb1dd9ed68281af9968cf2cd23b4e49ead76c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 18:02:12 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 21:48:14 2009 -0700"
      },
      "message": "Extend Intent/Uri conversion for use by Browser\n\nThis introduces a new Uri form of Intent with an \"intent:\" scheme, and a\ncorresponding update to the parser to handle these, so that the browser\ncan use this generic facility for starting activities based on the links\nthat are clicked and allow for web pages to link to arbitrary intents.\n\nThere is also a new \"package\" field on Intent which allows you to limit\nthe components it finds to a given package.  This replaces the new method\nthat was added to PackageManger for doing this when resolving activities,\nand implements it for all Intent queries against the package manager.\n"
    },
    {
      "commit": "e64bb1dd9ed68281af9968cf2cd23b4e49ead76c",
      "tree": "be4412a48f3bcd4ee6271bb8661949c5d7a2c490",
      "parents": [
        "e9190a2750e1fb67e300d2c128227cc9b7339efe",
        "760ec4a095567457707abe764cf4dfda0ed84032"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 21:40:20 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 21:40:20 2009 -0700"
      },
      "message": "Merge change 4579 into donut\n\n* changes:\n  Fix issue #1924851\n"
    },
    {
      "commit": "760ec4a095567457707abe764cf4dfda0ed84032",
      "tree": "c2631746b144977ebfa44d41676847fefb009d06",
      "parents": [
        "83248c432ffe2e2a17abbc8e4960c26574b46bca"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 20:05:26 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Jun 17 21:36:52 2009 -0700"
      },
      "message": "Fix issue #1924851\n\nWe now only increment the launch count when we are launching from one package\nto another.  Also the individual components in a package now have a count\nof the number of times they have been entered, which likewise is only updated\nwhen going to one component from another.\n\nThis requires a new data format (all old data is wiped) and new checkin\ndump format (tools must be updated to read it).\n"
    },
    {
      "commit": "2420186c891bf8aa33ed5e710bfea9e1cd963c84",
      "tree": "72a36372de5c5bc70ef2a4da225bf59f54876175",
      "parents": [
        "e2dc20c2749f3d09656f758415646948c6245769",
        "5553f1528e94377ae5adf423e91331f5eb57dd44"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 18:46:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 18:46:17 2009 -0700"
      },
      "message": "am 5553f152: Merge change 3936 into donut\n\nMerge commit \u00275553f1528e94377ae5adf423e91331f5eb57dd44\u0027\n\n* commit \u00275553f1528e94377ae5adf423e91331f5eb57dd44\u0027:\n  add exception message to ApplicationErrorReport\n"
    },
    {
      "commit": "e1fae30e20b1515eeb036a7c103e1e70de130bdd",
      "tree": "7cafbd21f0df7606d64ea19e07c622efe4dbc6b4",
      "parents": [
        "253e8e34b323f05bb7d5fdc8591bdaadbab55dd6",
        "0781df943e5a7a72ac82394874b6200d14ddd02c"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 18:24:44 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 18:24:44 2009 -0700"
      },
      "message": "Merge commit \u00270781df94\u0027 into manualmerge\n\nConflicts:\n\tAndroid.mk\n\tapi/current.xml\n"
    },
    {
      "commit": "87a02bcf68dd4cc1f6d9fdcee3d1ebc9b04cf1f8",
      "tree": "49f1177443cbed65a44a806d4390c0fe9dfb3725",
      "parents": [
        "ed336839d20aae0cb2ff46d3b231e39570281880"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jun 17 02:30:10 2009 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Wed Jun 17 18:23:05 2009 -0700"
      },
      "message": "Replace the stub GoogleTransport with callout to the\nGoogleTransportService (which lives in vendor/google).\nUse the Google transport by default.\nAlso, fix a bug: Thread.run() !\u003d Thread.start()\n"
    },
    {
      "commit": "5cc37854d45f3cc887c2dd306a6bcc4cb8a77726",
      "tree": "d1cf89e8157533e8f33df4e86e1cce75fa11656d",
      "parents": [
        "321d593efe1ef9582795a8416fed7e0cd0a406d0",
        "07ca8c71f47ac8c61b3aef0210e44d2c48e62e48"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 15:39:06 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 15:39:06 2009 -0700"
      },
      "message": "am 07ca8c71: Merge change 4438 into donut\n\nMerge commit \u002707ca8c71f47ac8c61b3aef0210e44d2c48e62e48\u0027\n\n* commit \u002707ca8c71f47ac8c61b3aef0210e44d2c48e62e48\u0027:\n  Fix many of the ANRs introduced by scheduling classes.\n"
    },
    {
      "commit": "1bd88ca88f8b89dbf09697b8eddc4703e266a654",
      "tree": "a45e5c12d86271a16f9809adf5b4d9f3f2cc98ed",
      "parents": [
        "ddf9bc76a46cf63bdefceb811660d510a1565e49",
        "aa088447baadd2e0bbcfd18cc529645610c13ddc"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 17 15:37:53 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 15:37:53 2009 -0700"
      },
      "message": "am aa088447: Hold the current transport instantiated all the time.\n\nMerge commit \u0027aa088447baadd2e0bbcfd18cc529645610c13ddc\u0027\n\n* commit \u0027aa088447baadd2e0bbcfd18cc529645610c13ddc\u0027:\n  Hold the current transport instantiated all the time.\n"
    },
    {
      "commit": "f829a78f6c78141d2cf8074f00fcded37fbf9007",
      "tree": "c2d2639dcb578022f16a50751ac5d7f42d03264f",
      "parents": [
        "0781df943e5a7a72ac82394874b6200d14ddd02c"
      ],
      "author": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Thu Jun 11 22:47:02 2009 +0200"
      },
      "committer": {
        "name": "Jacek Surazski",
        "email": "jaceks@google.com",
        "time": "Wed Jun 17 21:48:17 2009 +0200"
      },
      "message": "add exception message to ApplicationErrorReport\n\nuseful signal for clustering\n"
    },
    {
      "commit": "1ccac75e1f1b97eccb916a8de04fc1012b30f6e5",
      "tree": "181c91a427de2ea609eff1f42c3970a441225b45",
      "parents": [
        "ef29f6afb4746eae8263ab901a5d3677bc04574b"
      ],
      "author": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Fri Jun 12 10:09:58 2009 -0700"
      },
      "committer": {
        "name": "Suchi Amalapurapu",
        "email": "asuchitra@google.com",
        "time": "Wed Jun 17 11:31:26 2009 -0700"
      },
      "message": "Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app\nCreate a new public IntentSender class that can be used by PackageManager instead.\nThis new class uses IIntentSender internally and can only be created by PendingIntent for now.\nProvide a new getIntentSender api in PendingIntent to create an instance of this class.\nMove IIntentSender and IIntentReceiver from android.app to android.content\nChange imports of IIntentSender and IIntentReceiver to reflect the new package name\nThe PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage\nonce the older api(which has been deprecated) will be removed shortly.\n"
    },
    {
      "commit": "ff4a203c78e9a890e3ab73ee35691f895c996b2a",
      "tree": "8d00fee2934026b1b9828138e3eed80fcd5d3705",
      "parents": [
        "8195e4f0ad2e199ac8b0e79d2a9a1cece00c7ace",
        "63d2700036d0f73cbde27f0fa724d30045b4bb07"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 17 10:48:22 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 17 10:48:22 2009 -0700"
      },
      "message": "am 63d27000: Allow privileged callers to schedule a backup pass for any app.\n\nMerge commit \u002763d2700036d0f73cbde27f0fa724d30045b4bb07\u0027\n\n* commit \u002763d2700036d0f73cbde27f0fa724d30045b4bb07\u0027:\n  Allow privileged callers to schedule a backup pass for any app.\n"
    },
    {
      "commit": "07ca8c71f47ac8c61b3aef0210e44d2c48e62e48",
      "tree": "99af628547f741a12c018df2be395f7b264f40be",
      "parents": [
        "a0a854d47f9dc38ce41505f973aea01842694fb5",
        "82f3f0008eca314b69a86900deb93932b9912759"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 10:38:44 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 17 10:38:44 2009 -0700"
      },
      "message": "Merge change 4438 into donut\n\n* changes:\n  Fix many of the ANRs introduced by scheduling classes.\n"
    },
    {
      "commit": "82f3f0008eca314b69a86900deb93932b9912759",
      "tree": "8df476aeaab5cdc87e06a1a0c35f28ac75d2a697",
      "parents": [
        "8ad473994d402e42ec3c8f44f31e99ef2f7e9237"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 16 18:49:05 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Jun 16 18:49:05 2009 -0700"
      },
      "message": "Fix many of the ANRs introduced by scheduling classes.\n\nWe weren\u0027t bumping the oom_adj of processes receiving a registered broadcast.  Previously\nthis wasn\u0027t a problem, because those processes are allowed to have their oom_adj\nmanaged by whatever else is in them and if the registered receiver goes away no problem.\nBut now this is also controlling the scheduling class, so we need to bump them up.\n\nThis is probably good anyway, since the developer has the same assurance of their process\nnot being killing in the middle of registered receivers like it had always been for\nmanifest receivers.\n\nAlso fixed a small issue where we were not recomputing the oom_adh after finished with\na broadcast.\n"
    },
    {
      "commit": "aa088447baadd2e0bbcfd18cc529645610c13ddc",
      "tree": "37653911cb8dddfdfc23b3cc1b516f98a21ea282",
      "parents": [
        "63d2700036d0f73cbde27f0fa724d30045b4bb07"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 16 18:25:46 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 16 18:25:46 2009 -0700"
      },
      "message": "Hold the current transport instantiated all the time.\n\nWe no longer instantiate the transport just for the duration of handling a\nbackup or restore operation.  Instead, we hold the object forever (replacing it\nif instructed to do so).  This makes it easier for transports to watch system\nstate and help set backup timing policy.\n\nAlso fixes up the IBackupTransport documentation a bit.\n"
    },
    {
      "commit": "63d2700036d0f73cbde27f0fa724d30045b4bb07",
      "tree": "b3a5407fa991bb027a5f2bef324f29d2f317474c",
      "parents": [
        "e705f2c52e683bdad2e845b50df6b6cbed660614"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 16 17:16:42 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 16 17:18:05 2009 -0700"
      },
      "message": "Allow privileged callers to schedule a backup pass for any app.\n"
    },
    {
      "commit": "714000456b74dfc08c5100ce38bfe8cdd54e6571",
      "tree": "d4d6d3cd6886aece6f7c2956a3f241a79216902b",
      "parents": [
        "c1760fa84c1ac59793f8a23bb5a311ef9b5fc469",
        "febde5fc290eb422f78b47f393dc451394751d59"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 16 16:43:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 16 16:43:17 2009 -0700"
      },
      "message": "am febde5fc: Merge change 4389 into donut\n\nMerge commit \u0027febde5fc290eb422f78b47f393dc451394751d59\u0027\n\n* commit \u0027febde5fc290eb422f78b47f393dc451394751d59\u0027:\n  More bmgr work; fix clear-data signalling\n"
    },
    {
      "commit": "f68eb500f99361541049e09eb7f9ddd6f4ef4efa",
      "tree": "ccb031f408b087de63baf720b13779d4d989a61d",
      "parents": [
        "5633034f79bfa67c4219f16fd6d23e962e800be2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 16 11:02:01 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Jun 16 13:58:17 2009 -0700"
      },
      "message": "More bmgr work; fix clear-data signalling\n\nThe \u0027list sets\u0027 and \u0027restore token#\u0027 commands from bmgr now do what they are\nsupposed to.  At this point we see the restore target\u0027s data being cleared\nproperly and its agent being launched and invoked for restore.\n"
    },
    {
      "commit": "22a9f7a52e68aecc096130c29675a1330e83f409",
      "tree": "c6d3b0ae9cc88e55636a3f3aceebb5ec4750a0b6",
      "parents": [
        "723eab00200d40707aa1034ee3bbdce38c44eb46",
        "6297cb2eb57c183e202744516a96b2dbbf204a09"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 16 08:37:18 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Jun 16 08:37:18 2009 -0700"
      },
      "message": "am 6297cb2e: Merge change 4287 into donut\n\nMerge commit \u00276297cb2eb57c183e202744516a96b2dbbf204a09\u0027\n\n* commit \u00276297cb2eb57c183e202744516a96b2dbbf204a09\u0027:\n  Sketch out a \u0027bmgr\u0027 command line tool\n"
    },
    {
      "commit": "6297cb2eb57c183e202744516a96b2dbbf204a09",
      "tree": "791001b9954331cdde48c2774e219be3c0514987",
      "parents": [
        "4ebd855bb7362d45833dc811f2622fcc788dec17",
        "ace7f094bf07bbd90cb998b9462e4f2d101a498c"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 15 19:03:48 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 15 19:03:48 2009 -0700"
      },
      "message": "Merge change 4287 into donut\n\n* changes:\n  Sketch out a \u0027bmgr\u0027 command line tool\n"
    },
    {
      "commit": "ace7f094bf07bbd90cb998b9462e4f2d101a498c",
      "tree": "9581b7ce708b84fa8c433041722e9f730e3c0fe3",
      "parents": [
        "9908b3d820f7574ef432f22d280c7f1f5065f67f"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 15 18:07:25 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Mon Jun 15 18:07:25 2009 -0700"
      },
      "message": "Sketch out a \u0027bmgr\u0027 command line tool\n\nNot finished, but eventually will allow adb shell access to the Backup Manager\nfor testing purposes etc.\n"
    },
    {
      "commit": "a2aaa9e38f1f491dd2809e36c4f670dd114bc232",
      "tree": "381e758570b9b52bd21673bdddfa904a101af120",
      "parents": [
        "21f0b1766cb502e940985777826db1a3beb625a1",
        "6edb3487beb1973b1ea05e5b4168ba1ac247c9a4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 15 17:17:49 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 15 17:17:49 2009 -0700"
      },
      "message": "resolved conflicts for merge of 6edb3487 to master\n"
    },
    {
      "commit": "cfaef699e1dfb3a75d5b51f3b15816f13670fd51",
      "tree": "594192d551bfad6569f415c0a4371899ec480fdd",
      "parents": [
        "3adf7678cdf8fa955627e096bb5c27b94adc3079"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 15 14:24:44 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Jun 15 14:35:07 2009 -0700"
      },
      "message": "Implement permission test for activity, window, service manager.\n\nThis also includes some changes to the window manager permission checks.  Almost all of these\nare to make it most testable (through an exception on a permission failure), though there is\none permission check that needed to be added: updateOrientationFromAppTokens().\n"
    },
    {
      "commit": "daf701fa6250ae89ad93e2e41127e0f676a322a5",
      "tree": "5b816f0e72d4bd2b0b2040242799c4008abf3a59",
      "parents": [
        "aa73f17201481f943345253328071118abc02933",
        "2fdd428e0f18384160f7c38ce3a2cd9ba7e7b2c2"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Sun Jun 14 21:13:03 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun Jun 14 21:13:03 2009 -0700"
      },
      "message": "am 2fdd428e: Fix some backup reader/writer issues; make local transport do backup\n\nMerge commit \u00272fdd428e0f18384160f7c38ce3a2cd9ba7e7b2c2\u0027\n\n* commit \u00272fdd428e0f18384160f7c38ce3a2cd9ba7e7b2c2\u0027:\n  Fix some backup reader/writer issues; make local transport do backup\n  Fix the jni initializer.\n  Add RestoreFileHelper, BackupDataInput, and add java wrappers for the methods on BackupDataOutput.\n  Fix bug #1812041: activity manager crash with bad args.\n  Journal backup requests so that they won\u0027t be lost in a crash\n  Fix data connection issues.\n"
    },
    {
      "commit": "be3615bded04c7414db4da3721f512b6f76e09e2",
      "tree": "218ee88e95c64bc75371ee8c00a6817780dfd40b",
      "parents": [
        "bf0010b5e25549bf736478bc57fbde8d7a892e1a",
        "75b038545edd799836b712e6c32bd4d143f8df28"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 18:03:11 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 18:03:11 2009 -0700"
      },
      "message": "Merge change 4112 into donut\n\n* changes:\n  Fix bug #1812041: activity manager crash with bad args.\n"
    },
    {
      "commit": "75b038545edd799836b712e6c32bd4d143f8df28",
      "tree": "274063b7551f42b333eccff6e63dccbb4a8f401b",
      "parents": [
        "cafdea61a85c8f5d0646cc9413a09346c637f43f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 12 15:43:26 2009 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Jun 12 15:43:26 2009 -0700"
      },
      "message": "Fix bug #1812041: activity manager crash with bad args.\n\nThere was old code that would kill the system process in some cases when there\nwas a bad activity token.  This is really no longer used, except in a few\nplaces where it allows apps to kill the system.  So just get rid of it and\nmake the world a better place.\n"
    },
    {
      "commit": "cde87f45e0fa052d070b88ae33fb03c89870536a",
      "tree": "5f0972e6f965cc06bb3d773038f79096e0715ace",
      "parents": [
        "0b77453076a22569f24318d194b378b68f11a63e"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 12 12:55:53 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Fri Jun 12 13:57:39 2009 -0700"
      },
      "message": "Journal backup requests so that they won\u0027t be lost in a crash\n\nWhen an application requests a backup via dataChanged(), we now journal that\nfact on disk.  The journal persists and is only removed following a successful\nbackup pass.  When the backup manager is started at boot time, it looks for any\nexisting journal files and schedules a backup for the apps listed in them, on\nthe expectation that the device shut down or crashed before a backup could be\nperformed.\n"
    },
    {
      "commit": "0c32f14ef117e37e22dae4a7b7f8de804a1b855d",
      "tree": "fbc33ff6c33c447edbdc1557cb5251c73404527b",
      "parents": [
        "a50b795161ec8c8d367b94d06afb45e7213614ef",
        "9bbc21a773cbdfbef2876a75c32bda5839647751"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jun 11 00:56:29 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 11 00:56:29 2009 -0700"
      },
      "message": "am 9bbc21a7: Flesh out restore interface on manager; work up most of LocalTransport\n\nMerge commit \u00279bbc21a773cbdfbef2876a75c32bda5839647751\u0027\n\n* commit \u00279bbc21a773cbdfbef2876a75c32bda5839647751\u0027:\n  Flesh out restore interface on manager; work up most of LocalTransport\n"
    },
    {
      "commit": "74c2acee04ac046de9d9dd303af3fc7388362ca5",
      "tree": "cdd80d61c3fb2ac0b01decc0ad599e9f4fcdae68",
      "parents": [
        "43b605d6820a699be9bf6ed4617793b54ae4bfb2",
        "238bf47a850532233ed51362dca95facf8680770"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 11 00:45:02 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 11 00:45:02 2009 -0700"
      },
      "message": "am 238bf47a: Merge change 3826 into donut\n\nMerge commit \u0027238bf47a850532233ed51362dca95facf8680770\u0027\n\n* commit \u0027238bf47a850532233ed51362dca95facf8680770\u0027:\n  LocationManagerService: Fix logic error removing multiple dead receivers.\n"
    },
    {
      "commit": "9bbc21a773cbdfbef2876a75c32bda5839647751",
      "tree": "f5e7274be3f4aee30f8894d5ba1ad90607793530",
      "parents": [
        "b6391d6377883586995127c9926c1b5b8035fd60"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 10 20:23:25 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 10 20:38:54 2009 -0700"
      },
      "message": "Flesh out restore interface on manager; work up most of LocalTransport\n"
    },
    {
      "commit": "de115412d5410355122b3665a12bb5063cd585fe",
      "tree": "23862adc13ef9b4757b38439294e801c2f617e2b",
      "parents": [
        "1ecb750f65d17ba0e95add5d0c39201391faffd0",
        "f40e1a5fa6aa64ca764acb926b5228f30e40718a"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 10 18:06:18 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 10 18:06:18 2009 -0700"
      },
      "message": "Merge change 3841\n\n* changes:\n  Fix botched merge from commit b61498d1ac8e25f0024dcde46b41bcf0d8336d89\n"
    },
    {
      "commit": "f40e1a5fa6aa64ca764acb926b5228f30e40718a",
      "tree": "4d41b6ae6707ca5d72cca994d410b7231b022204",
      "parents": [
        "ca83b1b176756cc6ec0a96af0fdbe6abe95d7f96"
      ],
      "author": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jun 10 18:02:15 2009 -0700"
      },
      "committer": {
        "name": "Eric Fischer",
        "email": "enf@google.com",
        "time": "Wed Jun 10 18:02:15 2009 -0700"
      },
      "message": "Fix botched merge from commit b61498d1ac8e25f0024dcde46b41bcf0d8336d89\n"
    },
    {
      "commit": "238bf47a850532233ed51362dca95facf8680770",
      "tree": "9498825684544f5d61e24357c580d74a8384f44a",
      "parents": [
        "1d7d5db74f14e871c7be719a0cddf52a5a40dcbf",
        "4686657cee6411eb00235d49b4a8663a96361a00"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 10 17:32:21 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 10 17:32:21 2009 -0700"
      },
      "message": "Merge change 3826 into donut\n\n* changes:\n  LocationManagerService: Fix logic error removing multiple dead receivers.\n"
    },
    {
      "commit": "4686657cee6411eb00235d49b4a8663a96361a00",
      "tree": "da44281bd79d89a085c14f8dfaa7aac5b4076675",
      "parents": [
        "a32b5f3252a58416f328399680395aa5fa936640"
      ],
      "author": {
        "name": "Simon Schoar",
        "email": "schoar@googlemail.com",
        "time": "Wed Jun 10 21:12:10 2009 +0200"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jun 10 20:23:31 2009 -0400"
      },
      "message": "LocationManagerService: Fix logic error removing multiple dead receivers.\n\nIf multiple receivers are dead, only the first one will be added.\nfound in http://code.google.com/p/android/issues/detail?id\u003d2651\n\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "bb8d0dfed9c3f9f3dd9b806acadd9b9d1fe2cbc9",
      "tree": "ef847c59edecbb76d772f20b015860e6649d8e3a",
      "parents": [
        "4f84953a4fdbd275871e3260f9ce4f639f2606c5",
        "c7b31e3c3cd71129557d4bf9e3fbcebb9235aba5"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 10 17:19:57 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 10 17:19:57 2009 -0700"
      },
      "message": "am c7b31e3c: The rest of the basic flow for restore\n\nMerge commit \u0027c7b31e3c3cd71129557d4bf9e3fbcebb9235aba5\u0027\n\n* commit \u0027c7b31e3c3cd71129557d4bf9e3fbcebb9235aba5\u0027:\n  The rest of the basic flow for restore\n"
    },
    {
      "commit": "c7b31e3c3cd71129557d4bf9e3fbcebb9235aba5",
      "tree": "adbd6cb9919f8bf7af80acda4e5cc1049f1ed425",
      "parents": [
        "2795c2d6b73f6e72565569f7d4f2f4b34e526bba"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 10 15:49:30 2009 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jun 10 16:43:50 2009 -0700"
      },
      "message": "The rest of the basic flow for restore\n\nAlso moved the processOneBackup() implementation into the Thread class that runs\nthe backup sequence.\n"
    },
    {
      "commit": "bd6b11dd582d7c7dde64e355f967f5ed77a9870d",
      "tree": "5e6928b1d7562d363623cc2323f57a42da47fd20",
      "parents": [
        "737bae060a82cc0b93512b2934955b8ddcaf759e",
        "e5fb328825995aa33b5b7ecf8b5bee2b17f81715"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 10 16:31:36 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 10 16:31:36 2009 -0700"
      },
      "message": "am e5fb3288: resolution support fix/improvement     * adding compatibility menu     * backup gravity     * set expanable\u003dtrue if the screen size is hvga * density.     * added \"supports any density\" mode. I\\\u0027ll add sdk check later.     * disallow to catch orientation c\n\nMerge commit \u0027e5fb328825995aa33b5b7ecf8b5bee2b17f81715\u0027\n\n* commit \u0027e5fb328825995aa33b5b7ecf8b5bee2b17f81715\u0027:\n  resolution support fix/improvement\n"
    },
    {
      "commit": "b61498d1ac8e25f0024dcde46b41bcf0d8336d89",
      "tree": "f8d8b687113d08d750fa8578367bd8ee64d903a9",
      "parents": [
        "a10cb5a344c23a3dc2aa6fd6ab42e5880c67c626",
        "f31cbbf54ef8d44247c6f612429122a62335c11b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 10 16:30:18 2009 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 10 16:30:18 2009 -0700"
      },
      "message": "resolved conflicts for merge of f31cbb to master\n"
    },
    {
      "commit": "e5fb328825995aa33b5b7ecf8b5bee2b17f81715",
      "tree": "4b6ca87aaf21dd587e1d033f5ba3318c4329698f",
      "parents": [
        "ca436e24dec0fa258a8a756c3e7d07bcb096c5b3"
      ],
      "author": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Tue Jun 09 21:16:08 2009 -0700"
      },
      "committer": {
        "name": "Mitsuru Oshima",
        "email": "oshima@google.com",
        "time": "Wed Jun 10 15:22:17 2009 -0700"
      },
      "message": "resolution support fix/improvement\n    * adding compatibility menu\n    * backup gravity\n    * set expanable\u003dtrue if the screen size is hvga * density.\n    * added \"supports any density\" mode. I\u0027ll add sdk check later.\n    * disallow to catch orientation change event if the app is not expandable. This\n      was causing layout problem under non-expandable mode. I discussed this with Mike C\n      and we agreed to do this approach for now. We\u0027ll revisit if this causes problem to\n      a lot of applications.\n"
    }
  ],
  "next": "06882f8effe0f69fb689c46b4fe876329ce60ada"
}
