)]}'
{
  "log": [
    {
      "commit": "30025095524e471ec347633e39f26ed0606bea65",
      "tree": "533cbe1808445dcd4dd6d8b7dacc180fcc29b90a",
      "parents": [
        "cee49280366af9aa35e889e90d0ae0e90b453a22"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu Apr 19 14:43:29 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Apr 24 14:39:06 2018 +0100"
      },
      "message": "Pass the fd to OatFile::Setup to avoid selinux errors.\n\nbug: 77853712\nTest: test.py\nChange-Id: I069cda5296b561284d71b067924e1bc4a8562710\n"
    },
    {
      "commit": "79e2607ab50163bfdc283f4a49decec26a216df5",
      "tree": "0cdb2c65412b64a55ddf1a486ab3d961a0301a3e",
      "parents": [
        "b4b91460b2d01d36ddcb7d55111ccd8faf390c2a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 06 17:58:50 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 13 08:29:30 2018 -0700"
      },
      "message": "Move profile dependent modules to libartbase\n\nMove mem_map and zip_archive to libartbase.  This should be the last two\nremaining modules that profile_compilation_info is dependent upon.\n\nBug: 22322814\nTest: make -j 50 checkbuild\n      make and boot a device\n\nChange-Id: I136ee23e426aa8ec7441e3d3f1978f1bebf4b562\n"
    },
    {
      "commit": "88c6d26dd8686bdb366d54937a505f10f3bf1cd8",
      "tree": "2f07c4ef2144c4a909760260389d070fe22af05e",
      "parents": [
        "38321bb87c3630afaef76f312e90df5bca6a0554"
      ],
      "author": {
        "name": "Chris Morin",
        "email": "cmtm@google.com",
        "time": "Tue Feb 13 15:26:21 2018 -0800"
      },
      "committer": {
        "name": "Christopher Morin",
        "email": "cmtm@google.com",
        "time": "Tue Feb 20 16:35:18 2018 +0000"
      },
      "message": "patchoat: take directories instead of filenames\n\npatchoat was already ignoring the basename part of the filename passed\nto it for both --output-image-file and --output-image-relocation-file.\nWe can therefore just pass in the directories instead.\n\nBug: 72828459\nTest: make test-art-host-gtest-patchoat_test\nChange-Id: I1a699d1f6746f068078ae768d30690431578d84e\n"
    },
    {
      "commit": "5f9a8017be9893dc175d1e7bcad59dd80656d49b",
      "tree": "3ca3b41eee5aa656edd4b05406278821ba706e29",
      "parents": [
        "0e09dfc9cbdd6c2510dbe50dba95cf9d2d815e79"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Feb 12 20:27:46 2018 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Feb 13 16:40:15 2018 -0800"
      },
      "message": "Expose the optimization status of a dex file\n\nAdd a method which exposes the optimization status of a dex file based on\nits expected runtime behaviour. The method returns the status in an array\n[compilation filter, compilation reason].\n\nThe method will try to mimic the runtime effect of loading the dex file.\nFor example, if there is no usable oat file, the compiler filter will be\nset to \"run-from-apk\".\n\nThis will enable more accurate performance monitoring of apks.\n\nTest: oat_file_assistant_test\nBug: 73102540\nChange-Id: Ida9abef502dcb3fd07e1b0988771fb60e9b2a423\n"
    },
    {
      "commit": "77b38df8ebc6be91621054a0bc9bca68c02d6879",
      "tree": "905b9f654e1f7551e94bab3c8544515b965b8770",
      "parents": [
        "23c6cf437b12864fb637b8cbe4018f8608135b0d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 18 16:16:49 2018 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu Jan 18 17:27:06 2018 -0800"
      },
      "message": "Update to track libbacktrace API changes.\n\nBug: 65682279\n\nTest: Compiles. Ran art host unit tests.\nChange-Id: I2077e61cc89cdb93a04a70612b01596fcc273d8c\n"
    },
    {
      "commit": "5cf8b5369d16249fcc58cf4a845ed0c430fd45eb",
      "tree": "746907053e956d59ec63d907c2023506093abe92",
      "parents": [
        "a9683fb824a12bc27819777fae0223b13f04ce43"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Sun Dec 03 12:46:17 2017 -0800"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Tue Dec 05 13:16:47 2017 -0800"
      },
      "message": "Modify to use new BacktraceMap iterator.\n\nBug: 69871050\n\nTest: Ran host unit tests.\nChange-Id: I3c8c9a49a2c1cf0017502a869d1af0cb2a895ebd\n"
    },
    {
      "commit": "357c66dcc20ce15108ecf05f5ecf69a80b383dab",
      "tree": "c6b1984838a0faff32bed37ceaf8be2b4a5c4deb",
      "parents": [
        "9e8797d1c96dd4744b667ef6bbd10812e2087f79"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 04 01:57:17 2017 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 04 16:08:57 2017 -0700"
      },
      "message": "Revert \"Revert \"Ensure dex file are extracted and verified at load time\"\"\n\nThe issue was caused by running device-gtests as root (which will always\nhave full write access everywhere).\n\nFor now, disable the tests that rely on file permissions when running as\nroot.\n\nTest: m test-art-target-gtest-oat_file_assistant_test\nBug: 36605597\nBug: 36824842\n\nThis reverts commit 9bfc6bb1f44797aec19a151e47c0902ef2516095.\n\nChange-Id: I60e8c3d602ca40b1f1e12e8808055effcbb8dcc6\n"
    },
    {
      "commit": "9bfc6bb1f44797aec19a151e47c0902ef2516095",
      "tree": "af9fe3020cd389105a8bb03c8680289f4287953e",
      "parents": [
        "d2510c92e7c1f571ab012fcb82e77d7e1806ae3b"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 04 00:13:50 2017 +0000"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 04 00:13:50 2017 +0000"
      },
      "message": "Revert \"Ensure dex file are extracted and verified at load time\"\n\nThe art build bot fails for the oat location tests. I suspect that ScopedNonWritable is not working properly on the bot.\n\nThis reverts commit d2510c92e7c1f571ab012fcb82e77d7e1806ae3b.\n\nChange-Id: Ica70862fd608ebdeb3c710f786ae21b99b69bc20\n"
    },
    {
      "commit": "d2510c92e7c1f571ab012fcb82e77d7e1806ae3b",
      "tree": "b175bb55137627b7beb879592be001bbc85851aa",
      "parents": [
        "3650acb134b4e68ba3f190772b02105f74081bf2"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu Apr 20 19:28:25 2017 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 03 11:56:32 2017 -0700"
      },
      "message": "Ensure dex file are extracted and verified at load time\n\nThis change removes the ability to specify an explicit OAT location and\nensures that the best oat file (either the oat or the odex) is compiled\naccording to its special filter (kDefaultCompilerFilterForDexLoading).\n\nThe oat files location can therefore be:\n- in dalvik-cache: referred as the OAT location.\n- in dex_parent_dir/oat/ISA/: referred as the ODEX location.\n\nThe \"best oat file\" for a dex location is changed to prefer the ODEX\nlocation whenever the location is writable (see\nOatFileAssistant::GetBestInfo()).\n\nMakeUpTodate will now attempt to generate the \"best oat file\" instead of\nalways defaulting to the oat location.\n\nTest: m test-art-host-getest-oat_file_assistant_test\nBug: 36605597\nBug: 36824842\nChange-Id: Ic54b3b94be06c8c47f211ce3d738b0db0a9c7bb3\n"
    },
    {
      "commit": "49cda06d5bf003f588ba7839bbf89d606237dfa7",
      "tree": "bc97607c6ae33a69ebdea2346c781f7ac238c9e3",
      "parents": [
        "aa03f6fa38da0166790f2b22b679e6568ad56f7d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 21 13:08:25 2017 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri Apr 21 13:25:15 2017 +0100"
      },
      "message": "Rename and obsolete compiler filter names.\n\nART side of the change.\n\nbug:34715556\ntest: test-art-host, jdwp, libcore\nChange-Id: I3a73ae4af2d602431150c8ecfceaddb9ba519cee\n"
    },
    {
      "commit": "bc26b72a96c6e67a30d819506d643cb259886030",
      "tree": "7e84ce42ecb0d560b3ad3f44d7d4bcc5c7e1745a",
      "parents": [
        "96c4715d5ce952999f066ec74ecc8609a0856733"
      ],
      "author": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Fri Mar 10 14:27:10 2017 +0000"
      },
      "committer": {
        "name": "Richard Uhler",
        "email": "ruhler@google.com",
        "time": "Mon Mar 13 16:10:32 2017 +0000"
      },
      "message": "Make image oat checksum depend on secondary images.\n\nRather than explicitly having to load and combine the checksums from\nsecondary images in the case of multi-image, have the image oat\nchecksum for the primary image depend on the contents of all the\nimages.\n\nBug: 35659889\nBug: 34385298\nBug: 35992406\n\nTest: test-art-host\nTest: Manually add field to ZygoteInit, update boot image, verify image\n      is properly relocated and used on device.\nChange-Id: I38bd957d165682edabd0fd1874e8ef7acf923deb\n"
    },
    {
      "commit": "d0af56cdb1eaebea403e382257bdc14d7b7fdaa4",
      "tree": "56b21fb7d4dcbb0dcab45e07dc48e47a074af6c5",
      "parents": [
        "ee883219e329571b9e487b94dc6a675095d088bf"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 17 12:56:25 2017 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Fri Feb 17 15:54:49 2017 -0800"
      },
      "message": "Make dex2oat support profiles passed to non profile filters\n\nUsing a non profile filter with an input profile should compile\neverything but generate an app image and optimize layout based on\nthe profile.\n\nChange UseProfileGuidedCompilation to use the profile arguments.\nUsing profile arguments instead of being based on the compiler\nfilter lets us do full speed compile and layout based on profile.\n\nFix ShouldCompileBasedOnProfile to use the compiler filter instead\nof the existence of a profile.\n\nFixed gtests.\n\nTest: test-art-host\n\nBug: 34927277\n\nChange-Id: I325a10d2072ed427bb32f96e4efa54cf81e94ad3\n"
    },
    {
      "commit": "36eb313c805713c1367e5b9d73897ade1c24174b",
      "tree": "a2485977f12299a493217ead13a0cb5510c4251d",
      "parents": [
        "d713d29507fb98bea3eee9277f05422a9b641ca1"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Fri Jan 13 16:32:38 2017 -0800"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue Jan 24 11:29:34 2017 -0800"
      },
      "message": "Add dexoptanalyzer tool\n\ndexoptanalyzer is a command line tool which analyzes whether or not a\ngiven dex file needs to be dexopted. It is a wrapper around\nOatFileAssistant::GetDexOptNeeded and its results have a mapping to\nOatFileAssistant::DexOptNeeded.\n\nThis is needed for the management of secondary dex file. We need a way\nto retrieve the DexOptNeeded status from installd outside system server.\nWe can\u0027t simply use the system server path (as we do for the main apks)\nbecause system server can\u0027t access content writable by the apps.\n\nBug: 32871170\nTest: m test-art-(host|target)\nChange-Id: Ife1534560ca2658079d4a38a30bc8d94f35fe9c8\n"
    }
  ]
}
