)]}'
{
  "log": [
    {
      "commit": "8bbbbd4445fea98e9e05931dab0e8d6815c394c6",
      "tree": "125bb035b13f3057042289ded734fe4af67c7c13",
      "parents": [
        "ea46fe29d93fc6d77aaf623f8ce05a334b2f7a93"
      ],
      "author": {
        "name": "Magnus Eriksson",
        "email": "packetlss@gmail.com",
        "time": "Mon Mar 08 16:09:49 2010 +0100"
      },
      "committer": {
        "name": "Magnus Eriksson",
        "email": "packetlss@gmail.com",
        "time": "Mon Mar 08 16:09:49 2010 +0100"
      },
      "message": "menus can now be bigger than the screen, scoll support in menus\n"
    },
    {
      "commit": "ea46fe29d93fc6d77aaf623f8ce05a334b2f7a93",
      "tree": "dcfd68f88ed60bc00d0f1b9df726b8dd1bf8c384",
      "parents": [
        "19459f31fad6f5e87ea0b7adddefe2dc3f966759"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Mar 08 02:58:04 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Mar 08 02:58:04 2010 -0800"
      },
      "message": "install_zip command\n"
    },
    {
      "commit": "19459f31fad6f5e87ea0b7adddefe2dc3f966759",
      "tree": "f75dab62f3e76a97f1cdb63d51be24caca5ad0f4",
      "parents": [
        "60d7ee07baf31cec06a830a67d1c747dc585a062"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 22:31:40 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 22:31:40 2010 -0800"
      },
      "message": "1.5.0\n"
    },
    {
      "commit": "60d7ee07baf31cec06a830a67d1c747dc585a062",
      "tree": "ec94aac10d382e6b2411687e7d4f82bfdc90e8dc",
      "parents": [
        "a9483087a0d238cd01d953aa0b4650dbd3a977c6"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 22:16:55 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 22:16:55 2010 -0800"
      },
      "message": "add sleep and print commands.\n"
    },
    {
      "commit": "a9483087a0d238cd01d953aa0b4650dbd3a977c6",
      "tree": "11d653c7f0fd37234c79c404ca67a645d37dc0e7",
      "parents": [
        "13d8fccf50c21e3fe7f84120e53150c55a15e1b2"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 21:47:41 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 21:47:41 2010 -0800"
      },
      "message": "add backup_rom and restore_rom to amend scripts\n"
    },
    {
      "commit": "13d8fccf50c21e3fe7f84120e53150c55a15e1b2",
      "tree": "6fbaf089c5b7db08df067adeadfaf9751a3f1f61",
      "parents": [
        "32e4111df5698438832a11348279e7b956215388"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 14:15:14 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 14:15:14 2010 -0800"
      },
      "message": "need to hide the UI to reboot\n"
    },
    {
      "commit": "32e4111df5698438832a11348279e7b956215388",
      "tree": "2ade054f492b525b2843171a95046e957ce0fa0c",
      "parents": [
        "72a1db635860db8c2e9bc4ee2ce1534c32a4b042"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 14:11:56 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 14:11:56 2010 -0800"
      },
      "message": "reboot upon extendedcommand success\n"
    },
    {
      "commit": "72a1db635860db8c2e9bc4ee2ce1534c32a4b042",
      "tree": "18b83076f6aeefca9e301e7638ab4d33f0108cbc",
      "parents": [
        "f68aaaf20c1f8f20825d51d6e984e9f9d75e4393"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 14:10:26 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 14:10:26 2010 -0800"
      },
      "message": "run an extended command script on boot if it exists\n"
    },
    {
      "commit": "f68aaaf20c1f8f20825d51d6e984e9f9d75e4393",
      "tree": "b45a5aa980e2d0deace9f80515411fb46f9c6d6a",
      "parents": [
        "2bda3e9fa09ccc51e3d5c10134bf91b41a4ab43f"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 13:39:21 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Mar 07 13:39:21 2010 -0800"
      },
      "message": "run amend scripts from the command line\n"
    },
    {
      "commit": "2bda3e9fa09ccc51e3d5c10134bf91b41a4ab43f",
      "tree": "223f5045ed01780fe7a5bca0eb917bbef7d32e86",
      "parents": [
        "73098ab18a065aff83e4bc899be3e9b001a7a3e4"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Mar 06 16:40:52 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Mar 06 16:40:52 2010 -0800"
      },
      "message": "disable script asserts by default for user usage\n"
    },
    {
      "commit": "73098ab18a065aff83e4bc899be3e9b001a7a3e4",
      "tree": "04fb52b50564261886c704aece61ee38002932dd",
      "parents": [
        "99fb6fef11db8172c7daa219f19161fd432f5c20"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Mar 06 16:37:01 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Mar 06 16:37:01 2010 -0800"
      },
      "message": "version 1.4.2. minor bug fixes.\n"
    },
    {
      "commit": "99fb6fef11db8172c7daa219f19161fd432f5c20",
      "tree": "d9d858c2b7338e27566f81093d0062791e64c2e8",
      "parents": [
        "e81cb750fd3854a2e39869d600ebb2b7bd23f771"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Mar 03 00:42:58 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Mar 03 00:42:58 2010 -0800"
      },
      "message": "merge busybox and other tools into recovery.\n"
    },
    {
      "commit": "e81cb750fd3854a2e39869d600ebb2b7bd23f771",
      "tree": "1a929276d1166519e22c28bc1da0bfe4210962bd",
      "parents": [
        "81d8ee59bb6fd61a3ff34109f951abace3906ba5"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 26 17:44:33 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 26 17:44:33 2010 -0800"
      },
      "message": "not every implementation has the \"enable\" file\n"
    },
    {
      "commit": "81d8ee59bb6fd61a3ff34109f951abace3906ba5",
      "tree": "fda4714d80b847872d8f04cf700caa25d7ee1224",
      "parents": [
        "0317378bf6f83fc3feb4525aab8f284c5d8811fc"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 26 14:18:55 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 26 14:18:55 2010 -0800"
      },
      "message": "up the version\n"
    },
    {
      "commit": "0317378bf6f83fc3feb4525aab8f284c5d8811fc",
      "tree": "efe3454579168dd435c7fe31059c6edcd235ed8c",
      "parents": [
        "ea2f2428a1646eea58d5f3a290a0609158eaa10c"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 26 14:14:23 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 26 14:14:23 2010 -0800"
      },
      "message": "usb mass storage support. user initiated recovery is now user friendly.\n"
    },
    {
      "commit": "ea2f2428a1646eea58d5f3a290a0609158eaa10c",
      "tree": "13050a593b5040583737063c26ecd00fd53f8520",
      "parents": [
        "a1749d93bc6462442cd07084b1277d9a302f09cd",
        "db8dedf12f9aabce1a95c715af6da9aeeae7155f"
      ],
      "author": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:49:57 2010 -0500"
      },
      "committer": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:49:57 2010 -0500"
      },
      "message": "Merge branch \u0027eclair\u0027 of git@github.com:ctso/android_bootable_recovery into eclair\n"
    },
    {
      "commit": "a1749d93bc6462442cd07084b1277d9a302f09cd",
      "tree": "13050a593b5040583737063c26ecd00fd53f8520",
      "parents": [
        "261dde9f48c20dd102e274bd1939dbb0eff6b38e"
      ],
      "author": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:45:55 2010 -0500"
      },
      "committer": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:49:30 2010 -0500"
      },
      "message": "Added ability to wipe_data and update_package at the same time.\n\nThis will be needed for a future project I am working on,\nOpenUpdater.\n"
    },
    {
      "commit": "db8dedf12f9aabce1a95c715af6da9aeeae7155f",
      "tree": "13050a593b5040583737063c26ecd00fd53f8520",
      "parents": [
        "185baeeb7940f7b88f96143f849b80069dd1b8a9"
      ],
      "author": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:48:08 2010 -0500"
      },
      "committer": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:48:08 2010 -0500"
      },
      "message": "Fixed a bug that would never allow update_package + wipe_data to be called.\n"
    },
    {
      "commit": "185baeeb7940f7b88f96143f849b80069dd1b8a9",
      "tree": "ef7a13b46722b431d2791d0e71ce008f4c7e5854",
      "parents": [
        "261dde9f48c20dd102e274bd1939dbb0eff6b38e"
      ],
      "author": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:45:55 2010 -0500"
      },
      "committer": {
        "name": "Chris Soyars",
        "email": "ctsoyars@gmail.com",
        "time": "Fri Feb 26 02:45:55 2010 -0500"
      },
      "message": "Added ability to wipe_data and update_package at the same time.\n\nThis will be needed for a future project I am working on,\nOpenUpdater.\n"
    },
    {
      "commit": "261dde9f48c20dd102e274bd1939dbb0eff6b38e",
      "tree": "3563b5538f97b22ec9a83d12b782098dd0327691",
      "parents": [
        "001c5b508f9b385726cbae4870843b40798d1b31"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 16:51:45 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 16:51:45 2010 -0800"
      },
      "message": "make it pretty\n"
    },
    {
      "commit": "001c5b508f9b385726cbae4870843b40798d1b31",
      "tree": "68f50f33551f3c5b61f1211ca1906146ff360e89",
      "parents": [
        "49f5689b42b6f66b7821c3bc1340f0fa79721041"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 14:53:57 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 14:53:57 2010 -0800"
      },
      "message": "clean up tabs vs spaces\n"
    },
    {
      "commit": "49f5689b42b6f66b7821c3bc1340f0fa79721041",
      "tree": "01e485ba03659c8033bc469796bca2d0543893b7",
      "parents": [
        "79ce82cab33d8497219557289aac8dc661805311"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 14:51:05 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 14:51:05 2010 -0800"
      },
      "message": "allow choosing of subdirectories when searching for a zip file to install\n"
    },
    {
      "commit": "79ce82cab33d8497219557289aac8dc661805311",
      "tree": "5989cedd732a86823e01b0177f8e3f16fb6d6f9a",
      "parents": [
        "33370db18724dc2720a6a45fd9cbd8c1a291e0f6"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 12:03:17 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 12:03:17 2010 -0800"
      },
      "message": "successful installation should hide the android installing icon\n"
    },
    {
      "commit": "33370db18724dc2720a6a45fd9cbd8c1a291e0f6",
      "tree": "e24f545d25f38437829e806250e38176b5e64b09",
      "parents": [
        "01098d245c8c3a5564139f097ac7390c318b090d"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 11:39:07 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 11:39:07 2010 -0800"
      },
      "message": "better error codes to allow for diagnosing problems in recovery mode. fix system looking for sh in /system/bin/sh\n"
    },
    {
      "commit": "01098d245c8c3a5564139f097ac7390c318b090d",
      "tree": "f1112e6b76d9fbcf5b4128cdcfb962b14580dcbd",
      "parents": [
        "36d02893cd2490e565e6880dd6d030912bd93a63"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 11:07:19 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 25 11:07:19 2010 -0800"
      },
      "message": "nandroid backup supports a directory now\n"
    },
    {
      "commit": "36d02893cd2490e565e6880dd6d030912bd93a63",
      "tree": "64d62028d07f7ce71891ee2a5fc32405cd92762f",
      "parents": [
        "ff32e8c7e506f00717c2a39765e22ef63451efea"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 22 15:08:23 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Feb 24 22:46:28 2010 -0800"
      },
      "message": "fix build\n"
    },
    {
      "commit": "ff32e8c7e506f00717c2a39765e22ef63451efea",
      "tree": "50f5886c551cb7c0b773bee0f10666e23491df29",
      "parents": [
        "a37e9b1f19ebc5fa6caa09bb6dd78ba2bad8d79b"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Feb 24 13:16:43 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Feb 24 13:16:43 2010 -0800"
      },
      "message": "clean up\n"
    },
    {
      "commit": "a37e9b1f19ebc5fa6caa09bb6dd78ba2bad8d79b",
      "tree": "2e4fd537bcb224cd904c480bd15f84aa9702c295",
      "parents": [
        "5740b042b56f02d9b038f7637a3ab1255527c8a9"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Feb 24 13:13:34 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Feb 24 13:13:34 2010 -0800"
      },
      "message": "Patch from Magnus to fix issues with bad blocks and dumping a boot image. Need to clean up the patch a bit. Also reverted mtdutils.s to korg/eclair-release\n"
    },
    {
      "commit": "5740b042b56f02d9b038f7637a3ab1255527c8a9",
      "tree": "92e6a6aad5daaddace3f82b82cc16d533722c9ba",
      "parents": [
        "69b75410de021a8beec340c28a9d9f222cb6e53f"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Tue Feb 23 22:41:36 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Tue Feb 23 22:41:36 2010 -0800"
      },
      "message": "change the nandroid backup directory to something recovery specific, to reo prevent possible collisions\n"
    },
    {
      "commit": "69b75410de021a8beec340c28a9d9f222cb6e53f",
      "tree": "1a61ee6dfbe20cfcb507912a36f6790e50350549",
      "parents": [
        "007439bef67853585ec03c44a0606f369d69b2e2"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Tue Feb 23 18:07:31 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Tue Feb 23 18:07:31 2010 -0800"
      },
      "message": "do not check the results of a run_program if script asserts are disabled\n"
    },
    {
      "commit": "007439bef67853585ec03c44a0606f369d69b2e2",
      "tree": "2c670a3f104fcf56d45314adcf1ace29f736094c",
      "parents": [
        "7400dc2700fa11cff329508df9667a326a46c37c"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 22 19:01:54 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 22 19:01:54 2010 -0800"
      },
      "message": "never restore recovery\n"
    },
    {
      "commit": "7400dc2700fa11cff329508df9667a326a46c37c",
      "tree": "3bdb125f184a856838c393410ca3868c94478f8b",
      "parents": [
        "981b0cd1e14d8b53eb60f7af8a1b60e2d858c974"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 22 08:53:47 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 22 08:53:47 2010 -0800"
      },
      "message": "missing file\n"
    },
    {
      "commit": "981b0cd1e14d8b53eb60f7af8a1b60e2d858c974",
      "tree": "67c50881a07ea192b74e9e5153f4d20cc0c55706",
      "parents": [
        "225c6b4673ea880bc41a46becdc8531e90a9c90b"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 22 08:53:34 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 22 08:53:34 2010 -0800"
      },
      "message": "roll recovery tools into a single binary. fix up nandroid to work without deviceid requirement\n"
    },
    {
      "commit": "225c6b4673ea880bc41a46becdc8531e90a9c90b",
      "tree": "b751763951661f43fcb27c313a653f2d2aa8a693",
      "parents": [
        "1fa52ecdbf069247e699e2f48f5d21ea0506cc0a"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 22:02:24 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 22:02:24 2010 -0800"
      },
      "message": "do error checking of nandroid operations\n"
    },
    {
      "commit": "1fa52ecdbf069247e699e2f48f5d21ea0506cc0a",
      "tree": "747cf2609061031c12bc5d96beab0b88e20eaa38",
      "parents": [
        "bcdd00359cf84e47aeae24949b465ceaf380c9ff"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 21:29:10 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 21:29:10 2010 -0800"
      },
      "message": "add mount sdcard option\n"
    },
    {
      "commit": "bcdd00359cf84e47aeae24949b465ceaf380c9ff",
      "tree": "13b225216e630baf14bb7ae7a8ea2324fb97c56a",
      "parents": [
        "466e67a582bfe9bd8b025ba7e215ae44879a5ca7"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 21:10:25 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 21:10:25 2010 -0800"
      },
      "message": "Functional Nandroid\n"
    },
    {
      "commit": "466e67a582bfe9bd8b025ba7e215ae44879a5ca7",
      "tree": "fa99f7f2da916a0fe577c33a772787a6afd2c2db",
      "parents": [
        "1a7ee5384de65fcb642f6c04616d822f06bd06da"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 19:29:32 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 19:29:32 2010 -0800"
      },
      "message": "generate fstab using mkfstab.sh. implement restore of system data and cache in nandroid\n"
    },
    {
      "commit": "1a7ee5384de65fcb642f6c04616d822f06bd06da",
      "tree": "9ace714ce46bdd44931171946e8b65eec6fe52fd",
      "parents": [
        "7e5a6610647f93ee6e982b528099fda4b42edb45"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 17:52:30 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 17:52:30 2010 -0800"
      },
      "message": "add mkfstab.sh script to create an fstab on any device. clean up dump_image to use libmtdutils\n"
    },
    {
      "commit": "7e5a6610647f93ee6e982b528099fda4b42edb45",
      "tree": "0e5d82fab37e332f0686dff6fa4d07873a39ac0f",
      "parents": [
        "f9476fbfe8252ae111cc6792819d1e58f7a7a62a"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 01:09:52 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 01:09:52 2010 -0800"
      },
      "message": "move unyaffs into external/yaffs2\n"
    },
    {
      "commit": "f9476fbfe8252ae111cc6792819d1e58f7a7a62a",
      "tree": "aabc21c2b3f82589fb895b26202218b49a25736e",
      "parents": [
        "c788c263973e5dd951068a8e5e074c06d72d4366"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 01:02:30 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sun Feb 21 01:02:30 2010 -0800"
      },
      "message": "fix build break\n"
    },
    {
      "commit": "c788c263973e5dd951068a8e5e074c06d72d4366",
      "tree": "23ea3d0eeef618b6ea56d2f76941b535d3fe7791",
      "parents": [
        "8ce0be4956f8a942f06644a00347769126b4976e"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Feb 20 17:25:03 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Feb 20 17:25:03 2010 -0800"
      },
      "message": "more fixes\n"
    },
    {
      "commit": "8ce0be4956f8a942f06644a00347769126b4976e",
      "tree": "dc9c6f38c431db3b24266e1eca801449c9d332b9",
      "parents": [
        "3ab130fa9e213e40983472571da246e197930a9d"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Feb 20 15:59:06 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Feb 20 15:59:06 2010 -0800"
      },
      "message": "nearly working nandroid, built against libc\n"
    },
    {
      "commit": "3ab130fa9e213e40983472571da246e197930a9d",
      "tree": "aa511ca4862bd15e31f9295cecda4356aca10bad",
      "parents": [
        "bf055bb1be6f1448af3c02ea88b505c32506c22e"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 19 16:50:36 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 19 16:50:36 2010 -0800"
      },
      "message": "add missing files\n"
    },
    {
      "commit": "bf055bb1be6f1448af3c02ea88b505c32506c22e",
      "tree": "21ffbf887b641de3fa6661ed2ee323977d19de81",
      "parents": [
        "a3c2f735d7681aa1c0a927f2d45e08d86656dd09"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 19 16:47:53 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 19 16:47:53 2010 -0800"
      },
      "message": "intetrate nandroid into recovery\n"
    },
    {
      "commit": "a3c2f735d7681aa1c0a927f2d45e08d86656dd09",
      "tree": "9d3c7de38896bb980c60c91739e55e9ef3157f64",
      "parents": [
        "841b2bf352cd4c8596d8062d97200390c1dec84c"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 19 14:17:22 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 19 14:17:22 2010 -0800"
      },
      "message": "fix up back button and menu toggling\n"
    },
    {
      "commit": "841b2bf352cd4c8596d8062d97200390c1dec84c",
      "tree": "3b0e30192f1a0a46651f234e07139e2748cd100b",
      "parents": [
        "3a976a79bfa516644228bcd5ee447cab96deafb6"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 15 01:45:38 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 15 01:45:38 2010 -0800"
      },
      "message": "Add static flash_image for recovery\n"
    },
    {
      "commit": "3a976a79bfa516644228bcd5ee447cab96deafb6",
      "tree": "75d3d0ea8aae26685b9fafb93aaf4d12b9ee405f",
      "parents": [
        "e923487ff6ae9978959abacf421e018bcb013c10"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Feb 13 15:33:49 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Feb 13 15:33:49 2010 -0800"
      },
      "message": "power button toggles menu\n"
    },
    {
      "commit": "e923487ff6ae9978959abacf421e018bcb013c10",
      "tree": "104de702c94550f2176be8f6a2af8154d92d0f53",
      "parents": [
        "1f14c9a1f1dd29dbef6a96e051cd992a7aa593fc"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 12 00:43:24 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Fri Feb 12 00:43:24 2010 -0800"
      },
      "message": "working recovery image!\n"
    },
    {
      "commit": "1f14c9a1f1dd29dbef6a96e051cd992a7aa593fc",
      "tree": "75745be1673c95a598e40484955cbb99c0ceb937",
      "parents": [
        "6060e5c6df717a8070ceeb9c72c3c5dafa29cdd7"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 11 23:08:23 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 11 23:08:23 2010 -0800"
      },
      "message": "Need to call register_package_root prior to installing the package. The subsequent unregistering made me think that it was being registered at some point, but it was removed in the transition to eclair. The unregistration was dead code. It is being used now though.\n"
    },
    {
      "commit": "6060e5c6df717a8070ceeb9c72c3c5dafa29cdd7",
      "tree": "97ea1ca48fe3ed8758a275b892925ec5816640aa",
      "parents": [
        "4c1eed25738e2529ad5f785ca7eff29fa6d4ff4d"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 11 22:27:06 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 11 22:27:06 2010 -0800"
      },
      "message": "update.zip somewhat working now...\n"
    },
    {
      "commit": "4c1eed25738e2529ad5f785ca7eff29fa6d4ff4d",
      "tree": "70eef2520b10baf46205d6e1e3336cc0acaea4cd",
      "parents": [
        "0d4ff2fcc6162c5996cca39349662d378c7c26c3"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 11 18:59:58 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 11 18:59:58 2010 -0800"
      },
      "message": "Initial reintegration of legacy update process that used update-script\n"
    },
    {
      "commit": "0d4ff2fcc6162c5996cca39349662d378c7c26c3",
      "tree": "e477a026b3f3366b4d3fe44044b09d5c656a5115",
      "parents": [
        "89d385c4d9a0580c9712b571eb3d3ff6b88f9b9a"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Feb 08 15:05:21 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Feb 10 12:10:02 2010 -0800"
      },
      "message": "allow alt-l or menu to bring up the recovery menu\n"
    },
    {
      "commit": "89d385c4d9a0580c9712b571eb3d3ff6b88f9b9a",
      "tree": "bafed9795448b51af673ebd428140bea7eab6601",
      "parents": [
        "22d79a5c5eab9c1e86ff2af210bb072689e2d630"
      ],
      "author": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Thu Feb 04 14:17:32 2010 -0800"
      },
      "committer": {
        "name": "Koushik K. Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Feb 10 12:10:01 2010 -0800"
      },
      "message": "allow mouse/trackball click for enter on touch only devices.\n"
    },
    {
      "commit": "22d79a5c5eab9c1e86ff2af210bb072689e2d630",
      "tree": "866d289588e7c19e5218ce5aafbf9430bb274e99",
      "parents": [
        "17a47098d2a4214397f8b30e2692c9487d7ab5ff"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Jan 12 16:18:33 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jan 13 10:07:28 2010 -0800"
      },
      "message": "make offsets in firmware update header not point to bad blocks\n\n(This is being cherry-picked from master.)\n\nhboot will apparently fail to install if the first block of the image\n(the one pointed to by the offset in the block 0 header) is a bad\nblock.  (Hopefully it handles subsequent bad blocks.)\n\nThis change makes the MTD write code keep track of the bad blocks it\nhas skipped over, so that the offset in the header can be adjusted to\nbe the address of the first successfully written block.\n\nhttp://b/2358012 - passion: failure to flash hboot (bad blocks?)\n"
    },
    {
      "commit": "17a47098d2a4214397f8b30e2692c9487d7ab5ff",
      "tree": "f96c3fc70526d98cb381629774f2f290fee2b168",
      "parents": [
        "c652e41d9173e299a8e1805ae1b2bba75a34ae12"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Dec 14 18:03:27 2009 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Dec 14 18:27:03 2009 -0800"
      },
      "message": "use MEMGETBADBLOCK to look for bad blocks when reading MTD partitions\n"
    },
    {
      "commit": "c652e41d9173e299a8e1805ae1b2bba75a34ae12",
      "tree": "46a2bc479e4982263bf08635e1e43f3f1b61b623",
      "parents": [
        "54ec81fe86225d5f3ee3ab16e3266ae88cd639fa"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Dec 08 15:30:09 2009 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Dec 08 15:30:09 2009 -0800"
      },
      "message": "fix cut-and-paste error in verifier\n\nOops.\n"
    },
    {
      "commit": "54ec81fe86225d5f3ee3ab16e3266ae88cd639fa",
      "tree": "3089f7cc4eace77d713d6a756305ee2335238f99",
      "parents": [
        "988500b615de24455e1fee69e72055bb1dca9c86",
        "1c8ca2e40b3c4b1a847332f90de7fef4046cb225"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 07 20:09:16 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 07 20:09:16 2009 -0400"
      },
      "message": "Merge change I1c8ca2e4 into eclair\n\n* changes:\n  replace generic recovery icons\n"
    },
    {
      "commit": "988500b615de24455e1fee69e72055bb1dca9c86",
      "tree": "805fc4e7986e3a63ebe1de96f5d66dd3fa1f6549",
      "parents": [
        "f93d8166ef4c06f6ad71293ffa8a4ce469df4fa5"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Oct 06 14:41:38 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Oct 06 14:44:54 2009 -0700"
      },
      "message": "add terminator to recovery\u0027s getopt_long options array\n\nhttp://b/2170691 - recovery argument parsing is broken\n"
    },
    {
      "commit": "1c8ca2e40b3c4b1a847332f90de7fef4046cb225",
      "tree": "f878d262ce25741beec8b95b1106a242bbf5752f",
      "parents": [
        "f93d8166ef4c06f6ad71293ffa8a4ce469df4fa5"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Oct 02 15:42:31 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Oct 02 15:42:31 2009 -0700"
      },
      "message": "replace generic recovery icons\n"
    },
    {
      "commit": "f93d8166ef4c06f6ad71293ffa8a4ce469df4fa5",
      "tree": "e28c654dd352bf3bdd98b62cc4cba03ea23bbe2d",
      "parents": [
        "fd8fb0c49242af5147708f1a93ea3acba546555b"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 22 15:16:02 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 22 18:16:56 2009 -0700"
      },
      "message": "confirm before wiping user data in recovery\n\nWhen using the hidden menu to wipe data in recovery, confirm before\nstarting the wipe.  (This does not affect booting with the --wipe_data\nflag, or using Alt+W on dream with the menu hidden -- those still wipe\ndata immediately.)\n"
    },
    {
      "commit": "fd8fb0c49242af5147708f1a93ea3acba546555b",
      "tree": "6335e3fc41a5f5a3c4d251800033098d94bda0c8",
      "parents": [
        "60babf8ba766662cc0932e8271b67daa69cddd5f"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Sun Sep 20 14:10:27 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Sun Sep 20 14:10:27 2009 -0700"
      },
      "message": "reduce fraction of progress bar for verification\n\nReduce the fraction of the progress bar used for package verification\nfrom 50% to 25%:\n  - verification is faster than before due to sha1 improvements\n  - in eclair we\u0027re now verifying the compressed data rather than\n    decompressing it\n  - incremental packages (which is what most installs use) write more\n    data than is contained in the package.\n"
    },
    {
      "commit": "60babf8ba766662cc0932e8271b67daa69cddd5f",
      "tree": "d7d3e4f78d922b4c4475c1a3394b08eef4f9edd0",
      "parents": [
        "196c25c777daedbe2fe5a45171fb42e43ceed9af"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Sep 18 15:11:24 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Sep 18 15:11:24 2009 -0700"
      },
      "message": "delete files before symlinking; log error messages\n\nThe symlink() function should remove existing files before creating\nsymlinks, so scripts are idempotent.  Log messages when various system\ncalls fail (but don\u0027t make the whole script fail).\n"
    },
    {
      "commit": "196c25c777daedbe2fe5a45171fb42e43ceed9af",
      "tree": "3268e330b99b674b3cb4d8a8d03cb41035281953",
      "parents": [
        "a3f89eabb7ddcf44add8ce3b321ceab6d35289cb"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 15 08:50:04 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 15 08:50:04 2009 -0700"
      },
      "message": "don\u0027t complain if recovery icon is short\n\nIf the a recovery icon file is so short that we can\u0027t even read the\n8-byte header, put a message in the log but not on the device screen.\nWe intentionally have zero-length files for some icons on some devices,\nif they\u0027re never shown (eg, the firmware installation icons are only\nused on HTC devices).\n"
    },
    {
      "commit": "a3f89eabb7ddcf44add8ce3b321ceab6d35289cb",
      "tree": "6b82ff1904ef58ce74d4cee0359097446a66dc84",
      "parents": [
        "34c98df78a80881698f63ce0815f3e16823d85e0"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Sep 10 14:10:48 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Sep 10 14:20:53 2009 -0700"
      },
      "message": "add a run_program() function to edify\n\nHandy for producing debugging OTA packages (eg, running sqlite3 or\nwhatever in recovery).\n"
    },
    {
      "commit": "34c98df78a80881698f63ce0815f3e16823d85e0",
      "tree": "4b49e234a927329adfe8e59de8446a26303119a9",
      "parents": [
        "54e2e86c5740a2c7a02e95e94c4aff362a5502cf"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Aug 18 12:05:45 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Aug 18 12:05:45 2009 -0700"
      },
      "message": "do not merge: cherry-pick of c2d666bd4f6eb5f7a9f17b10435c161cb105b7c5 from master\n"
    },
    {
      "commit": "54e2e86c5740a2c7a02e95e94c4aff362a5502cf",
      "tree": "42fdf22f18dc4097c2f86cbd691fe6b1c8bd3820",
      "parents": [
        "0cf0e33b5fdb6eb871b64f5325ccd54339f62f01"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Aug 17 13:21:04 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Aug 17 13:21:04 2009 -0700"
      },
      "message": "do not merge: cherry-picked 60151a295ccf726238dc47456d80b427db6d6a38 from master branch\n"
    },
    {
      "commit": "0cf0e33b5fdb6eb871b64f5325ccd54339f62f01",
      "tree": "86caef39afb8bcac5a6bfdc32c10a2b998509b52",
      "parents": [
        "b9955b837321e36f65eb9ec0d2ec7c2681774143",
        "34109de24e124dff020b26552d46b20299d779fd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 04 09:00:15 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 04 09:00:15 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "b9955b837321e36f65eb9ec0d2ec7c2681774143",
      "tree": "86caef39afb8bcac5a6bfdc32c10a2b998509b52",
      "parents": [
        "eb1ac27bf07731a2ffde15a26791abbabfcb2a00",
        "20697b965cd923211daeea2037f60218358b9659"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Aug 04 08:44:43 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 08:44:43 2009 -0700"
      },
      "message": "am 20697b96: only build flash_image for eng\n\nMerge commit \u002720697b965cd923211daeea2037f60218358b9659\u0027\n\n* commit \u002720697b965cd923211daeea2037f60218358b9659\u0027:\n  only build flash_image for eng\n"
    },
    {
      "commit": "34109de24e124dff020b26552d46b20299d779fd",
      "tree": "a56912e18b608b123f1c4454293d2b2aa36fa96a",
      "parents": [
        "7bd5c660752ddd1b4ff6127b316fd6d8fb1005c7",
        "64893ccc09b25ac31bc6a17f5c7f43c7fa789576"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 29 14:56:48 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jul 29 14:56:48 2009 -0700"
      },
      "message": "merge from donut\n"
    },
    {
      "commit": "eb1ac27bf07731a2ffde15a26791abbabfcb2a00",
      "tree": "5418f1983c509a37f15e969d6ec1cbced8eae278",
      "parents": [
        "23412e6f143c099e6c2470ad6bf98a2783eb0452",
        "7bd5c660752ddd1b4ff6127b316fd6d8fb1005c7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Jul 26 11:43:53 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sun Jul 26 11:43:53 2009 -0700"
      },
      "message": "reconcile korg/master into goog/master\n"
    },
    {
      "commit": "7bd5c660752ddd1b4ff6127b316fd6d8fb1005c7",
      "tree": "88c0fc6a69cade6f9d4437666c6420e0f757e278",
      "parents": [
        "b2b467c757ed5db6b91c6f5b53a3476fb9c92782",
        "bec02d57fb85cc7dd0196a54b0e9530e306623ac"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jul 25 17:48:00 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jul 25 17:48:00 2009 -0700"
      },
      "message": "Merge korg/donut into korg/master\n"
    },
    {
      "commit": "20697b965cd923211daeea2037f60218358b9659",
      "tree": "49cf0f58351756c4344f38e4888616a389ea1a1e",
      "parents": [
        "64893ccc09b25ac31bc6a17f5c7f43c7fa789576"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jul 23 15:17:00 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jul 23 15:17:00 2009 -0700"
      },
      "message": "only build flash_image for eng\n\nWith the recovery image being installed by applypatch, the flash_image\ntool isn\u0027t needed any more.  Continue to build it for eng just in case\nit\u0027s handy for debugging.\n"
    },
    {
      "commit": "23412e6f143c099e6c2470ad6bf98a2783eb0452",
      "tree": "5418f1983c509a37f15e969d6ec1cbced8eae278",
      "parents": [
        "608fa02e1ac0ea11a0d3ca754f38bd76b77faa82"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jul 23 10:16:07 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jul 23 10:36:43 2009 -0700"
      },
      "message": "fix compile warnings in recovery, change images\n\ngcc 4.4 complains about some of the recovery ui functions not being\ndeclared.  To include the header, we have to fix the \u0027volatile\u0027\ndeclaration (otherwise there\u0027s a compiler error).\n\nMove the dream-specific images to vendor/htc/dream, make the default\nimages a generic phone.\n"
    },
    {
      "commit": "608fa02e1ac0ea11a0d3ca754f38bd76b77faa82",
      "tree": "5e7eb02fce9e783a2a149b8580e3da69d3cb6a2d",
      "parents": [
        "c457ff643627fb3edf0321a37fcffd6b520f931e",
        "64893ccc09b25ac31bc6a17f5c7f43c7fa789576"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jul 15 18:10:28 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jul 15 18:10:28 2009 -0700"
      },
      "message": "resolved conflicts for merge of 64893ccc to master\n"
    },
    {
      "commit": "64893ccc09b25ac31bc6a17f5c7f43c7fa789576",
      "tree": "a56912e18b608b123f1c4454293d2b2aa36fa96a",
      "parents": [
        "bec02d57fb85cc7dd0196a54b0e9530e306623ac"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Jul 14 16:31:56 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Jul 14 16:58:42 2009 -0700"
      },
      "message": "remove amend\n\nYank all the code to install OTA packages out of the recovery binary\nitself.  Now packages are installed by a binary included in the\npackage (run as a child of recovery), so we can make improvements in\nthe installation process without waiting for a new release to use\nthem.\n"
    },
    {
      "commit": "c457ff643627fb3edf0321a37fcffd6b520f931e",
      "tree": "b8f7c07d8384593fc55f7a96af856e9a9b990591",
      "parents": [
        "fc382dfc751725253f956ddaf5b7b90be90b41d7",
        "bec02d57fb85cc7dd0196a54b0e9530e306623ac"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jul 02 15:24:19 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jul 02 15:24:19 2009 -0700"
      },
      "message": "am bec02d57: skip over all-zero blocks when reading MTD partition\n\nMerge commit \u0027bec02d57fb85cc7dd0196a54b0e9530e306623ac\u0027\n\n* commit \u0027bec02d57fb85cc7dd0196a54b0e9530e306623ac\u0027:\n  skip over all-zero blocks when reading MTD partition\n"
    },
    {
      "commit": "bec02d57fb85cc7dd0196a54b0e9530e306623ac",
      "tree": "88c0fc6a69cade6f9d4437666c6420e0f757e278",
      "parents": [
        "d8f7c9b85e25fab93fef2221a84b60edc2e7b837"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jul 01 12:09:29 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jul 01 12:09:29 2009 -0700"
      },
      "message": "skip over all-zero blocks when reading MTD partition\n\nWe fail to detect certain bad blocks (marked in the factory as bad, I\nthink?) when reading mtd partitions.  These come back as a block of\nall zeros.  Since it\u0027s fairly unlikely a legitimate boot or recovery\nblock will contain 128k of zeros, change mtdutils to skip over such\nblocks.\n\nArve says https://review.source.android.com/10535 may be a long-term\nfix for this, but he isn\u0027t yet sure.\n"
    },
    {
      "commit": "fc382dfc751725253f956ddaf5b7b90be90b41d7",
      "tree": "fe7b772f6bea69f487e66d588d80d3219a92aaf0",
      "parents": [
        "898ef399d3ee998a871bebd04264b29e23c66738",
        "d8f7c9b85e25fab93fef2221a84b60edc2e7b837"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 29 16:39:15 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 29 16:39:15 2009 -0700"
      },
      "message": "am d8f7c9b8: Merge change 5545 into donut\n\nMerge commit \u0027d8f7c9b85e25fab93fef2221a84b60edc2e7b837\u0027\n\n* commit \u0027d8f7c9b85e25fab93fef2221a84b60edc2e7b837\u0027:\n  remove updater from the user system image\n"
    },
    {
      "commit": "d8f7c9b85e25fab93fef2221a84b60edc2e7b837",
      "tree": "69ac87bc0708d8da8a07c7184f31424ad7d98994",
      "parents": [
        "0bbfe3d901885c1f0ab006e8d4cc1029c44a7376",
        "ad3db099d5ee17b1b46fee3131b9561b73b36703"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 26 14:42:37 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 26 14:42:37 2009 -0700"
      },
      "message": "Merge change 5545 into donut\n\n* changes:\n  remove updater from the user system image\n"
    },
    {
      "commit": "ad3db099d5ee17b1b46fee3131b9561b73b36703",
      "tree": "2af419320a7b066da0a618513c0572a3b5fa753f",
      "parents": [
        "fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 26 13:38:55 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 26 13:38:55 2009 -0700"
      },
      "message": "remove updater from the user system image\n\nupdater (which is only needed in OTA packages) is getting included in\n/system/bin, where it just takes up (quite a bit of) space.  Use the\nhack of including it only in eng builds so it\u0027s not there for user\nbuilds.\n"
    },
    {
      "commit": "898ef399d3ee998a871bebd04264b29e23c66738",
      "tree": "32746aaa2d76a814e8ab627b18bab7ca9af7a43c",
      "parents": [
        "4275c3cfc828ac2df143d353a4e27e8dda20b4a9",
        "0bbfe3d901885c1f0ab006e8d4cc1029c44a7376"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 25 14:34:03 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 25 14:34:03 2009 -0700"
      },
      "message": "am 0bbfe3d9: fix off-by-one error in set_perm()\n\nMerge commit \u00270bbfe3d901885c1f0ab006e8d4cc1029c44a7376\u0027\n\n* commit \u00270bbfe3d901885c1f0ab006e8d4cc1029c44a7376\u0027:\n  fix off-by-one error in set_perm()\n"
    },
    {
      "commit": "0bbfe3d901885c1f0ab006e8d4cc1029c44a7376",
      "tree": "7a6abda5856a0fc4e62d94a1ad89c145a3d41c45",
      "parents": [
        "fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 25 13:37:31 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 25 13:37:31 2009 -0700"
      },
      "message": "fix off-by-one error in set_perm()\n\nWe were inadvertently skipping over the first filename in the list of\narguments.\n"
    },
    {
      "commit": "4275c3cfc828ac2df143d353a4e27e8dda20b4a9",
      "tree": "f36a4716573ef9d73f445a73c06bfa7b74054606",
      "parents": [
        "2b0fdc657115a4fe02af279fdbdab99c68df0a1a",
        "fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 24 17:39:16 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Jun 24 17:39:16 2009 -0700"
      },
      "message": "am fbf3c10e: improve updater progress bar\n\nMerge commit \u0027fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454\u0027\n\n* commit \u0027fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454\u0027:\n  improve updater progress bar\n"
    },
    {
      "commit": "fbf3c10e45c20f8fe6bd1ac49ffe220035b9c454",
      "tree": "458bbaf030872557aeea42b057383f246c5f6f75",
      "parents": [
        "47cace98369f60df2351a65801c8065bb7f9dbf0"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 24 09:36:20 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 24 09:36:20 2009 -0700"
      },
      "message": "improve updater progress bar\n\nLet recovery accept set_progress commands to control progress over the\n\u0027current segment\u0027 of the bar.  Add a set_progress() builtin to the\nupdater binary.\n"
    },
    {
      "commit": "2b0fdc657115a4fe02af279fdbdab99c68df0a1a",
      "tree": "18b992fb671d18310abc5f21364ac50cdbade177",
      "parents": [
        "b128f54d0daa749d301b99a6637f42aa35822a76"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 19 11:22:06 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Jun 22 14:00:44 2009 -0700"
      },
      "message": "add device extension mechanism to updater\n\nAllow devices (in BoardConfig.mk) to define additional static\nlibraries to be linked in to updater, to make device-specific\nfunctions available in edify scripts.  Modify the updater makefile to\narrange for device libraries to register their edify functions.\n"
    },
    {
      "commit": "b128f54d0daa749d301b99a6637f42aa35822a76",
      "tree": "889519250f40824c6df6ea197a8edee75cf95e10",
      "parents": [
        "f8aaf0a77f72cc5614d9b9135c0d00f8a8160f20"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 18 15:07:14 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 18 15:07:14 2009 -0700"
      },
      "message": "add function for device-specific wipe data features\n\nSome devices want to do special things when recovery wipes data (eg,\nwipe data in their baseband processor as well).  Add a hook in the\ndevice-specific recovery library that gets called when data is wiped.\n\nAlso add an amend root for the \"mbm\" partition.\n"
    },
    {
      "commit": "f8aaf0a77f72cc5614d9b9135c0d00f8a8160f20",
      "tree": "e27402e11be01960b069a265e9e0a1078319b1ac",
      "parents": [
        "d683785ec9d36a9f4c7de1983f69a1f049132365",
        "47cace98369f60df2351a65801c8065bb7f9dbf0"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 18 12:57:25 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jun 18 12:57:25 2009 -0700"
      },
      "message": "am 47cace98: add file_getprop() to updater\n\nMerge commit \u002747cace98369f60df2351a65801c8065bb7f9dbf0\u0027\n\n* commit \u002747cace98369f60df2351a65801c8065bb7f9dbf0\u0027:\n  add file_getprop() to updater\n"
    },
    {
      "commit": "47cace98369f60df2351a65801c8065bb7f9dbf0",
      "tree": "e030f48230e2e6e47204224018fc4c62db3d27ce",
      "parents": [
        "fb2e3af3f915c0e3f2b4b027ef26777267ad46dc"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 18 10:11:50 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 18 10:11:50 2009 -0700"
      },
      "message": "add file_getprop() to updater\n\nAdd a function to read a property from a \".prop\"-formatted file\n(key\u003dvalue pairs, one per line, ignore # comment lines and blank\nlines).  Move ErrorAbort to the core of edify; it\u0027s not specific to\nupdater now that errors aren\u0027t stored in the app cookie.\n"
    },
    {
      "commit": "d683785ec9d36a9f4c7de1983f69a1f049132365",
      "tree": "23ad6c933463bd0506ce492b7fba92dc7006ae48",
      "parents": [
        "e77e091522122bed0b4f75a3abcb120e398c9abe",
        "fb2e3af3f915c0e3f2b4b027ef26777267ad46dc"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 17 22:07:13 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 17 22:07:13 2009 -0700"
      },
      "message": "resolved conflicts for merge of fb2e3af3 to master\n"
    },
    {
      "commit": "fb2e3af3f915c0e3f2b4b027ef26777267ad46dc",
      "tree": "45e7354eacc638f4176a095844258d1f313aba7b",
      "parents": [
        "e3da02e7bcfd85c543419e7590a3c86f64d8cc8a"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 17 17:29:40 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 17 18:12:16 2009 -0700"
      },
      "message": "let the \"firmware\" command take the file straight from the package\n\nTo do a firmware-install-on-reboot, the update binary tells recovery\nwhat file to install before rebooting.  Let this file be specified as\n\"PACKAGE:\u003cfoo\u003e\" to indicate taking the file out of the OTA package,\navoiding an extra copy to /tmp.  Bump the API version number to\nreflect this change.\n"
    },
    {
      "commit": "e77e091522122bed0b4f75a3abcb120e398c9abe",
      "tree": "4b3d44b4b9fc35126905eb474f4972638ec5c155",
      "parents": [
        "84cbfb6cb4a82824a662137282c689f40057b28b",
        "e3da02e7bcfd85c543419e7590a3c86f64d8cc8a"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Jun 15 14:28:17 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Jun 15 14:28:17 2009 -0700"
      },
      "message": "am e3da02e7: add less_than_int, greater_than_int to edify\n\nMerge commit \u0027e3da02e7bcfd85c543419e7590a3c86f64d8cc8a\u0027\n\n* commit \u0027e3da02e7bcfd85c543419e7590a3c86f64d8cc8a\u0027:\n  add less_than_int, greater_than_int to edify\n"
    },
    {
      "commit": "84cbfb6cb4a82824a662137282c689f40057b28b",
      "tree": "30b5d33a047b5ae2eb86f53fa16de49d47486b1f",
      "parents": [
        "cf2b2a2e8fc0361b9db5826c2e5c92d9cb5920d3",
        "d9c9d10d9da76f067d3955bea71f7bb39e859fa5"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Sun Jun 14 21:12:26 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun Jun 14 21:12:26 2009 -0700"
      },
      "message": "am d9c9d10d: fixes to edify and updater script\n\nMerge commit \u0027d9c9d10d9da76f067d3955bea71f7bb39e859fa5\u0027\n\n* commit \u0027d9c9d10d9da76f067d3955bea71f7bb39e859fa5\u0027:\n  fixes to edify and updater script\n"
    },
    {
      "commit": "cf2b2a2e8fc0361b9db5826c2e5c92d9cb5920d3",
      "tree": "5147d4b4add3e2dc17f5404254e8ef3be80fd23c",
      "parents": [
        "32eb0a8c8707789a2460fccfd052bfec6dfc2456",
        "8edb00c990e563e6f91b278a212f2edf877cf763"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Sun Jun 14 20:49:32 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Sun Jun 14 20:49:32 2009 -0700"
      },
      "message": "am 8edb00c9: edify extensions for OTA package installation, part 2\n\nMerge commit \u00278edb00c990e563e6f91b278a212f2edf877cf763\u0027\n\n* commit \u00278edb00c990e563e6f91b278a212f2edf877cf763\u0027:\n  edify extensions for OTA package installation, part 2\n"
    },
    {
      "commit": "e3da02e7bcfd85c543419e7590a3c86f64d8cc8a",
      "tree": "54535b2854f7312a23f9df838abfc0312befd1d2",
      "parents": [
        "d9c9d10d9da76f067d3955bea71f7bb39e859fa5"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 12 16:13:52 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 12 16:13:52 2009 -0700"
      },
      "message": "add less_than_int, greater_than_int to edify\n\nAdd functions less_than_int() and greater_than_int() that interpret\ntheir args as ints and do the comparison.  (\"\u003c\" and \"\u003e\" operators, if\nimplemented, should do string comparison.)  This lets us do the build\ntime check currently done by the check_prereq binary.\n"
    },
    {
      "commit": "d9c9d10d9da76f067d3955bea71f7bb39e859fa5",
      "tree": "1e49a3a616c3147f871e79b1b15e2b2a63379cc1",
      "parents": [
        "8edb00c990e563e6f91b278a212f2edf877cf763"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 12 12:24:39 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 12 14:05:03 2009 -0700"
      },
      "message": "fixes to edify and updater script\n\nA few more changes to edify:\n\n  - fix write_raw_image(); my last change neglected to close the write\n    context, so the written image was corrupt.\n\n  - each expression tracks the span of the source code from which it\n    was compiled, so that assert()\u0027s error message can include the\n    source of the expression that failed.\n\n  - the \u0027cookie\u0027 argument to each Function is replaced with a State\n    object, which contains the cookie, the source script (for use with\n    the above spans), and the current error message (replacing the\n    global variables that were used for this purpose).\n\n  - in the recovery image, a new command \"ui_print\" can be sent back\n    through the command pipe to cause text to appear on the screen.\n    Add a new ui_print() function to print things from scripts.\n    Rename existing \"print\" function to \"stdout\".\n"
    },
    {
      "commit": "8edb00c990e563e6f91b278a212f2edf877cf763",
      "tree": "dcd6c0fb2ce82fcb5b43ed47dc74879cfe71b647",
      "parents": [
        "9dbc027b5f540bcf23c968398f8a70e92abd56cd"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 11 17:21:44 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 12 09:40:37 2009 -0700"
      },
      "message": "edify extensions for OTA package installation, part 2\n\nAdds more edify functions for OTAs:\n\n  is_mounted getprop apply_patch apply_patch_check apply_patch_space\n  write_raw_image write_firmware_image package_extract_file\n\nThis allows us to install radios, hboots, boot images, and install\nincremental OTA packages.\n\nFixes a couple of dumb bugs in edify itself:\n\n  - we were doubling the size of the function table each time it was\n    *not* full, rather than each time it was full\n\n  - \"no such function\" errors weren\u0027t visible to the parser, so they\n    didn\u0027t prevent execution of the script.\n"
    },
    {
      "commit": "32eb0a8c8707789a2460fccfd052bfec6dfc2456",
      "tree": "c6d6705c9cf240991a29b4773180691afadaf623",
      "parents": [
        "6c301e244d0d14e3b2983350d7c383abf52b89f7",
        "9dbc027b5f540bcf23c968398f8a70e92abd56cd"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 12 08:25:49 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 12 08:25:49 2009 -0700"
      },
      "message": "am 9dbc027b: fix sim build in donut, too\n\nMerge commit \u00279dbc027b5f540bcf23c968398f8a70e92abd56cd\u0027\n\n* commit \u00279dbc027b5f540bcf23c968398f8a70e92abd56cd\u0027:\n  fix sim build in donut, too\n"
    },
    {
      "commit": "6c301e244d0d14e3b2983350d7c383abf52b89f7",
      "tree": "c6d6705c9cf240991a29b4773180691afadaf623",
      "parents": [
        "c3885fabda7f8a4bd39f42f76012e00514b0a3ff",
        "9931f7f3c1288171319e9ff7d053ebaad07db720"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Fri Jun 12 08:25:38 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jun 12 08:25:38 2009 -0700"
      },
      "message": "am 9931f7f3: edify extensions for OTA package installation, part 1\n\nMerge commit \u00279931f7f3c1288171319e9ff7d053ebaad07db720\u0027\n\n* commit \u00279931f7f3c1288171319e9ff7d053ebaad07db720\u0027:\n  edify extensions for OTA package installation, part 1\n"
    },
    {
      "commit": "9dbc027b5f540bcf23c968398f8a70e92abd56cd",
      "tree": "daa1d97ee8a585480267f963048d25289c752176",
      "parents": [
        "9931f7f3c1288171319e9ff7d053ebaad07db720"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 11 17:32:55 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 11 17:32:55 2009 -0700"
      },
      "message": "fix sim build in donut, too\n"
    },
    {
      "commit": "c3885fabda7f8a4bd39f42f76012e00514b0a3ff",
      "tree": "c458a1216c98899914b210c1c21e8195c5944d2c",
      "parents": [
        "cbb91293450f893be80edd30a3dbe21566181af5"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 11 17:05:58 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 11 17:05:58 2009 -0700"
      },
      "message": "fix simulator build by excluding more of recovery\n"
    }
  ],
  "next": "9931f7f3c1288171319e9ff7d053ebaad07db720"
}
