)]}'
{
  "log": [
    {
      "commit": "db314d69f023d2a6c8956073aa9d283e20b280ef",
      "tree": "8d076d8b94464e1173b2b5dbf3f2ee419a1d7fa9",
      "parents": [
        "f635d2e91006028afa8b0fc53f80e5c157c495e6"
      ],
      "author": {
        "name": "Hristo Bojinov",
        "email": "hristo@google.com",
        "time": "Mon Aug 02 10:29:49 2010 -0700"
      },
      "committer": {
        "name": "Hristo Bojinov",
        "email": "hristo@google.com",
        "time": "Mon Aug 02 14:17:33 2010 -0700"
      },
      "message": "Working ASLR implementation\n\nSeparate files for retouch functionality are in minelf/*\n\nASLR for shared libraries is controlled by \"-a\" in ota_from_target_files.\nBinary files are self-contained. Retouch logic can recover from crashes.\n\nSigned-off-by: Hristo Bojinov \u003christo@google.com\u003e\nChange-Id: I76c596abf4febd68c14f9d807ac62e8751e0b1bd\n"
    },
    {
      "commit": "c4351c791052ad529a4e83c600b1aa6e6420ea86",
      "tree": "cdc534868eb58ea980bcca2fbc8e04b68fd9936c",
      "parents": [
        "583fc12c3dbe09e3a9b759b9466c505b006e6a39"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Feb 22 14:46:32 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Mon Feb 22 15:30:33 2010 -0800"
      },
      "message": "refactor applypatch and friends\n\nChange the applypatch function to take meaningful arguments instead of\nargc and argv.  Move all the parsing of arguments into main.c (for the\nstandalone binary) and into install.c (for the updater function).\napplypatch() takes patches as Value objects, so we can pass in blobs\nextracted from the package without ever writing them to temp files.\n\nThe patching code is changed to read the patch from memory instead of\na file.\n\nA bunch of compiler warnings (mostly about signed vs unsigned types)\nare fixed.\n\nSupport for the IMGDIFF1 format is dropped.  (We\u0027ve been generating\nIMGDIFF2 packages for some time now.)\n\nChange-Id: I217563c500012750f27110db821928a06211323f\n"
    },
    {
      "commit": "512536a54a1a211a9f582e76cbf12850dc7d5466",
      "tree": "724012f5ea1a3053adecb512baf342490bb94d02",
      "parents": [
        "21854ccdb250e6e81311b4317934e8c953b252a8"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Feb 17 16:11:44 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Feb 18 14:22:12 2010 -0800"
      },
      "message": "relocate applypatch; add type system and new functions to edify\n\n- Move applypatch to this package (from build).\n\n- Add a rudimentary type system to edify:  instead of just returning a\n  char*, functions now return a Value*, which is a struct that can\n  carry different types of value (currently just STRING and BLOB).\n  Convert all functions to this new scheme.\n\n- Change the one-argument form of package_extract_file to return a\n  Value of the new BLOB type.\n\n- Add read_file() to load a local file and return a blob, and\n  sha1_check() to test a blob (or string) against a set of possible\n  sha1s.  read_file() uses the file-loading code from applypatch so it\n  can read MTD partitions as well.\n\nThis is the start of better integration between applypatch and the\nrest of edify.\n\nb/2361316 - VZW Issue PP628: Continuous reset to Droid logo:\n            framework-res.apk update failed (CR LIBtt59130)\n\nChange-Id: Ibd038074749a4d515de1f115c498c6c589ee91e5\n"
    }
  ]
}
