)]}'
{
  "log": [
    {
      "commit": "df1e4067821353af7a006ef4d70b7001ad3bd924",
      "tree": "874fd5be1d93fb75610bf1d14925799934127977",
      "parents": [
        "5d6309e77f6055a9aec062dd991d071054726ebb",
        "0b7bbf29d5864fc2939ab9b954c0e1d18a24bffd"
      ],
      "author": {
        "name": "Koushik Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Dec 18 17:42:31 2010 -0800"
      },
      "committer": {
        "name": "Koushik Dutta",
        "email": "koushd@gmail.com",
        "time": "Sat Dec 18 17:42:31 2010 -0800"
      },
      "message": "Merge from ClockworkMod recovery\n\nChange-Id: Id5b312147173ced559a62d97029acede6c2f8766\n"
    },
    {
      "commit": "4123b582992c9b50d6ff11cc08811970a472a937",
      "tree": "53ba3837331b1a76a0e964c79772c28409b7cb35",
      "parents": [
        "158d25cae4c8cc5009654e112653b5fd21b469e9"
      ],
      "author": {
        "name": "Steve Kondik",
        "email": "shade@chemlab.org",
        "time": "Sun Nov 14 03:18:40 2010 -0500"
      },
      "committer": {
        "name": "Steve Kondik",
        "email": "shade@chemlab.org",
        "time": "Sun Nov 14 22:40:30 2010 -0500"
      },
      "message": "recovery: Autodetection of device flash type\n\nDetect flash type at runtime rather than requiring this to be set in the\ndevice configuration. The detection is based on the existence of /proc/mtd,\n/proc/emmc, or /dev/block/bml1.\n\nChange-Id: I464962a567022c5862c249f06d36c2d1cddeacba\n"
    },
    {
      "commit": "158d25cae4c8cc5009654e112653b5fd21b469e9",
      "tree": "21a6b5b2b241c6d8556e398f7dc756bd64841d64",
      "parents": [
        "7c50645a6c68954b1993194dfa6a92e41f9956b8"
      ],
      "author": {
        "name": "Antonio Vazquez",
        "email": "firebird_ysc@hotmail.com",
        "time": "Sat Nov 13 04:51:11 2010 +0800"
      },
      "committer": {
        "name": "Koushik Dutta",
        "email": "koush@koushikdutta.com",
        "time": "Sat Nov 13 05:23:33 2010 +0800"
      },
      "message": "Supress \"warning: comparison between signed and unsigned integer expressions\" in minui/resources.c and mtdutils/mtdutils.c\n"
    },
    {
      "commit": "19447c05506e4dfd19f621081770fe03e29d0457",
      "tree": "301e637311e817165d030878adb102f32b28ab14",
      "parents": [
        "fef77c02533ee2e62c6827af5ba3cfcc2bd0e749"
      ],
      "author": {
        "name": "Koushik Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Nov 10 10:40:44 2010 -0800"
      },
      "committer": {
        "name": "Koushik Dutta",
        "email": "koushd@gmail.com",
        "time": "Wed Nov 10 23:31:34 2010 -0800"
      },
      "message": "Refactor recovery\u0027s block device handling to work across variant hardware in a cleaner fashion.\n\nRe add firmware update\n\nChange-Id: I699ad22390ed14e597d17a7bcb32ad1b1af00b4b\n\nsupport mmc misc\n\nChange-Id: Iff02f8d03db6835f501d052140cebeefee521305\n\nfix compile errors\n\nChange-Id: I032edbd157a8a15f561bb83330c715ebaa008d18\n\nfix compile errors\n\nChange-Id: Idff3449be3376f22fceefc2c35637527f8df8f3f\n\nInitial work to clean up the block devices.\n\nChange-Id: I4be20ac124864a281be9cd116e211a2618404a27\n\nall done\n\nChange-Id: I0338f62f6a045556ebe90b0200685be113178319\n\nfix up nandroid\n\nChange-Id: I886f00271183e6d2921c080b0939341f2cf12a4d\n"
    },
    {
      "commit": "5d6309e77f6055a9aec062dd991d071054726ebb",
      "tree": "b77fcc831eb1c8c17399d2a1e6e7dae9ff22b5ff",
      "parents": [
        "51266d1397309978eac9b2e96035582454f0321b"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Nov 03 14:31:01 2010 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Nov 03 14:31:01 2010 -0700"
      },
      "message": "fix comparison of ECC stats before and after mtd reads\n\nECC errors are found by comparing the result of ioctl(ECCGETSTATS)\nbefore and after the read.  But if an error was found causing us to go\nto the next block, we\u0027d compare the stats before the *first* read to\nthe stats after the second (third, fourth, etc.) reads, so we\u0027d read\nto the end of the partition without ever succeeding.  Fix logic so we\ncompare the values before and after each read independently.\n\nBug: 3162777\nChange-Id: I5a13abd7243d2afd1d21bd98cbb233e5124b2e80\n"
    },
    {
      "commit": "8e5e4dada713609c9b2c45ea9cf4572bb89ef761",
      "tree": "b1dd9d0f6408811e71dade4f1ccbc52f18114a5e",
      "parents": [
        "d12560aa2134d3af21a1220cd4873553f9c51743"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 14 18:06:55 2010 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 14 21:26:38 2010 -0700"
      },
      "message": "close update package before installing; allow remount\n\nClose the update package before invoking the binary, to allow the\ninstaller to unmount /cache if it wants to.  Add a function to allow\nremounting of a mount as read-only.\n\nChange-Id: Idfcc96c3da66083295177f729263560be58034e4\n"
    },
    {
      "commit": "d12560aa2134d3af21a1220cd4873553f9c51743",
      "tree": "8cba0a1bae2a5152066817326122c3245f731ab9",
      "parents": [
        "61ba7a83ef46494689801ddaad569d7d174153b1"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 14 14:25:48 2010 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Sep 14 15:28:54 2010 -0700"
      },
      "message": "add the ability to seek to a raw location while reading MTD partition\n\nChange-Id: Id1563ca667c50e61cf1bb15d2cf783a50937eece\n"
    },
    {
      "commit": "61ba7a83ef46494689801ddaad569d7d174153b1",
      "tree": "91f1a820b29f208741b16c6646f5878aeabb7b88",
      "parents": [
        "aaf3f56c44c37dca4ef9cc9efde68727ca26105f"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Sun Sep 12 13:36:40 2010 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Sun Sep 12 13:36:40 2010 -0700"
      },
      "message": "stop treating all-zero blocks as bad\n\nChange-Id: If49fa6485f66598d16a7e44fce3129de55fab422\n"
    },
    {
      "commit": "aaf3f56c44c37dca4ef9cc9efde68727ca26105f",
      "tree": "98348aa7f7a18d4914aeb193e5b2b9d7982677cb",
      "parents": [
        "4bc980626c1cf6f1ea7d36e4b54e0023c896c9de"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Sep 09 16:41:49 2010 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Sep 09 16:54:35 2010 -0700"
      },
      "message": "block is bad if ioctl() returns nonzero\n\nChange-Id: I6fc4ce796bc663d05035927c0af0ce7ab6d07218\n"
    },
    {
      "commit": "14239d291ac21857c7c099a84bd9bba079137cef",
      "tree": "44769618851aa1a33f1634c80602636a5271246b",
      "parents": [
        "f8b21c2b4d44680a4d7e013d6459e0ad8ee987df"
      ],
      "author": {
        "name": "Koushik Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Jun 14 15:02:48 2010 -0700"
      },
      "committer": {
        "name": "Koushik Dutta",
        "email": "koushd@gmail.com",
        "time": "Mon Jun 14 15:02:48 2010 -0700"
      },
      "message": "begin to abstract out the file system and mount information. known issue: create_fstab causes segfault on incredible. and thus subsequent crash loop of recovery.\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": "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": "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": "4c5f9f341665ac4c1474afca92863cc02d9e1a13",
      "tree": "9af56e12944b3e3a3f9981c6fc4041331be37d19",
      "parents": [
        "be47155f754d6070c93614eed8549a30742bd091"
      ],
      "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 09:21:25 2010 -0800"
      },
      "message": "make offsets in firmware update header not point to bad blocks\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\nChange-Id: I45d58e32a36d0c1dbc0a7f871bd5985b6c8ff524\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": "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": "c24a8e688a6312764254beac2b2520bb0c5e998d",
      "tree": "7df23711566b358047301d8413ee399105546e8b",
      "parents": [
        "ffb48f64fec674c6dd923eb8b1eb3f743e05a8ba"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:42 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:42 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "ffb48f64fec674c6dd923eb8b1eb3f743e05a8ba",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "d4ae69739ebb67374d62229829df07bf2de85103"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:14 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:14 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "23580ca27a0a8109312fdd36cc363ad1f4719889",
      "tree": "0bb90eaa72f8df110162499f756b5cbfb7d49235",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
