)]}'
{
  "log": [
    {
      "commit": "48b788f0454f69176d74264356b262a8f53b0f89",
      "tree": "72eef5efdc84e88b628402642c5d74382f3e5ca3",
      "parents": [
        "413982e4450453ed458e525f47df2c43a1855aca"
      ],
      "author": {
        "name": "Tianjie",
        "email": "xunchang@google.com",
        "time": "Tue Mar 09 21:07:02 2021 -0800"
      },
      "committer": {
        "name": "Tianjie Xu",
        "email": "xunchang@google.com",
        "time": "Wed Mar 10 23:30:06 2021 +0000"
      },
      "message": "Actually abort update_engine for CHECK failure\n\n__android_log_write won\u0027t abort the program by itself. Since we are\nnot using libchrome\u0027s aborter, call __android_log_assert explicitly\non FATAL errors.\n\nBug: 182310095\nTest: check update_engine aborts for CHECK failure\nChange-Id: I41805f2b8294bba696e713100088dd720dd66356\n"
    },
    {
      "commit": "ec7bc11c3103d9310568a391271be52baef273a7",
      "tree": "c7d69b3c47c8ff86876cd662b4ace630c1e1362b",
      "parents": [
        "24e1d72aa2a1024417121b0d91bf9a6f3b883a96"
      ],
      "author": {
        "name": "Amin Hassani",
        "email": "ahassani@chromium.org",
        "time": "Thu Oct 29 16:47:58 2020 -0700"
      },
      "committer": {
        "name": "Commit Bot",
        "email": "commit-bot@chromium.org",
        "time": "Tue Nov 03 03:19:41 2020 +0000"
      },
      "message": "update_engine: Create cros vs. aosp boundary clear\n\nIts time to make the boundary between Chrome OS and Android code more\nclear. This CL moves all CrOS only code to \"chromeos\" directory and the\nsame for Android (in \"android\" directory). This way we would easily know\nwhich code is uses in which project and can keep the code cleaner and\nmore maintainable.\n\nOne big remaining problem is download_action* files. It seems like\nDownloadAction class does a lot of things that chrome OS needs and it\ndepends on a lot of Chrome OS stuff, but Android is also using thie\nAction in a way that circumvent the Chrome OS stuff. For example Android\nchecks for SystemState to be nullptr to not do things. This is really\nfragile and needs to change. Probably Android Team has to implement\ntheir own DownloadAction of some sort and not re use the Chrome OS one\nin a very fragile way.\n\nRemoved a few android files that have not been used anywhere.\n\nChanged some clang-format and lint issues in order to pass preupload.\n\nBUG\u003db:171829801\nTEST\u003dcros_workon_make --board reef --test update_engine\n\nChange-Id: I3fff1d4a100a065a5c1484a845241b5521614d9f\nReviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/system/update_engine/+/2508965\nTested-by: Amin Hassani \u003cahassani@chromium.org\u003e\nAuto-Submit: Amin Hassani \u003cahassani@chromium.org\u003e\nReviewed-by: Jae Hoon Kim \u003ckimjae@chromium.org\u003e\nReviewed-by: Tianjie Xu \u003cxunchang@google.com\u003e\nReviewed-by: Kelvin Zhang \u003czhangkelvin@google.com\u003e\nCommit-Queue: Amin Hassani \u003cahassani@chromium.org\u003e\n"
    },
    {
      "commit": "550ade4e44a72708354597307122a3f46e43a7d6",
      "tree": "e1d52591e29858b1faf89bd7896b074a4793ecc4",
      "parents": [
        "3635e6485e640cc26bd87895498045fe8ded271c"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Jun 02 15:08:37 2020 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Jun 03 16:54:34 2020 +0000"
      },
      "message": "Fix update_engine libchrome log tag.\n\nTest: boot and inspect logcat\nFixes: 158030597\nChange-Id: I931af4faf6219ce42ff94080ea834721726dc0ba\n"
    },
    {
      "commit": "e757420cd6042fb68d9a3630a0d00e795c3f2ffe",
      "tree": "747aa83ff03d42211aabab88339c3f9822d97664",
      "parents": [
        "29ebd7a61c49b9f1c70d5bab99ea2fc3905c2e5d"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Apr 06 15:08:24 2020 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Apr 08 17:33:02 2020 +0000"
      },
      "message": "sideload: fix duplicated logging\n\nAlso align logging behavior in sideload and regular Android.\n- Use logging_android.cc as well\n- Add a logging handler to libchrome\u0027s logging so that it won\u0027t\n  explicitly write to stderr after calling __android_log_write.\n\nTest: sideload and manually inspect /tmp/recovery.log\n\nBug: 153355820\nChange-Id: Iffaf245e8dec598ae8fd82052e2183a35afd604e\n"
    },
    {
      "commit": "35c71f73be194f29dfd63141df1608680aeae7f3",
      "tree": "5ba494226e4ea5005185006c2b280f650d7763c9",
      "parents": [
        "2403171579aca97ed33444b49e9f6f2e9058bdd0"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Fri Mar 06 16:37:45 2020 -0800"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Mar 25 18:36:43 2020 +0000"
      },
      "message": "Update android_logging for new liblog API changes\n\nThe API council has asked for changes to the new liblog API functions\nthat update_engine is using, this change keeps update_engine in sync\nwith liblog.\n\nBug: 150898477\nTest: build\nChange-Id: I4d8bf8df5ca29be06ba3d71947f1f71c376668b7\n"
    },
    {
      "commit": "f1fba65bf15dce01d77a21104ebec0c521136faa",
      "tree": "efe52aac859ebc20d6e33501c9fdb812cc798313",
      "parents": [
        "c80de2da7e72a52cda68017a9b6383d15a6ba28b"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Mon Mar 02 13:03:25 2020 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Mar 05 16:41:12 2020 +0000"
      },
      "message": "Preserve libbase / liblog logs.\n\nPreviously in Android, libchrome\u0027s logging::InitLogging is called\nwith log_file set. update_engine depends on various Android modules\n(notabily, libfs_mgr etc.) which uses libbase / liblog logging\nfunctionality. These logs are not written to the file and often\nunavailable to bug reports.\n\nNow, in Android, setup libbase logger (which sets liblog\nlogger). Logs from liblog / libbase / libchrome are all re-directed to\nthe\ncustom logger, CombinedLogger, which writes to logd and/or the\npersistent log file.\n\nTest: reboot and inspect /data/misc/update_engine_log and logcat.\nBug: 147696014\nBug: 148818798\n\nChange-Id: Ie55017f99515bf7b2443012810a14e1f3465c5d0\n"
    },
    {
      "commit": "c80de2da7e72a52cda68017a9b6383d15a6ba28b",
      "tree": "600f1690a1ac342ac460355d080729f70b66ef9e",
      "parents": [
        "8351750ac5d6789ebfaedaa4d81e3c9716652204"
      ],
      "author": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Tue Feb 25 17:13:53 2020 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Thu Mar 05 16:41:12 2020 +0000"
      },
      "message": "[REFACTOR] Split Android and CrOS logging.\n\nPreviously, they are all cramped in main.cc. Split them\ninto their respective files logging.cc, logging_android.cc\nand provide a common header, logging.h, that main.cc can use.\n\nBug: 147696014\nBug: 148818798\nTest: builds\nTest: build logging.cc in Android\nChange-Id: Iafdaee6be20e204f4faa1d1d8f81e43670f08d96\n"
    }
  ]
}
