)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "9931f7f3c1288171319e9ff7d053ebaad07db720",
      "tree": "42ae5b40309f6ea3410c5ad496f81368675274f7",
      "parents": [
        "9b9c2114bd7d02200ce43cb9ec513473079dfad9"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Wed Jun 10 14:11:53 2009 -0700"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Thu Jun 11 16:25:29 2009 -0700"
      },
      "message": "edify extensions for OTA package installation, part 1\n\nAdds the following edify functions:\n\n  mount unmount format show_progress delete delete_recursive\n  package_extract symlink set_perm set_perm_recursive\n\nThis set is enough to extract and install the system part of a (full)\nOTA package.\n\nAdds the updater binary that extracts an edify script from the OTA\npackage and then executes it.  Minor changes to the edify core (adds a\nsleep() builtin for debugging, adds \".\" to the set of characters that\ncan appear in an unquoted string).\n"
    }
  ]
}
