)]}'
{
  "log": [
    {
      "commit": "2300b2d45aba525a163688e5e8faa7448dbfcaef",
      "tree": "734e02b52a162b28f17e637320ffa08a555a8115",
      "parents": [
        "42805fa0afeefbc4fd4e3339940582bdda9c77bd"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 10 14:20:10 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri May 11 16:48:36 2018 -0700"
      },
      "message": "Remove MemMap dependency on libbacktrace\n\nRemove the dependency on BacktraceMap/libbacktrace for MemMap.\nThe removed code was entirely debug, but we may want to add back\nsome of it to facilitate test debugging.\n\nThis removes the dependency from libartbase on libbacktrace and\nmakes it possible to use libartbase from libdexflie without\ncausing a cyclic dependency.  This facilitates moving\nArtDexFileLoader and some other code into libartbase, and gets\nrid of some debt accumulated during all these refactorings.\n\nBug: 78652467\nTest: make -j 50 checkbuild\nChange-Id: Ic575a764817ba660b851f7d5b5c60e43f8356fea\n"
    },
    {
      "commit": "42805fa0afeefbc4fd4e3339940582bdda9c77bd",
      "tree": "041eb852669b2d40b885a15d192d66e49aae253c",
      "parents": [
        "57b1bcd19934b447eda315dc1b612ab91a87b2fd",
        "2b80ed488c497393270c98f7a767d8495166db8e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 10 17:44:18 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 17:44:18 2018 +0000"
      },
      "message": "Merge \"Make dexlayout and profman build without libart\""
    },
    {
      "commit": "57b1bcd19934b447eda315dc1b612ab91a87b2fd",
      "tree": "e9b5fd3eaad213d76e4f621211fd49e09f41bed2",
      "parents": [
        "5e046f87f22768735ef926ef06898027fe22528d",
        "59a49a6fe102b26aacda906b6a2c466d84819c73"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "message": "Merge \"Implement VMDebug API to mark a class \"platform\"\""
    },
    {
      "commit": "5e046f87f22768735ef926ef06898027fe22528d",
      "tree": "56433620398929c5bda3ffa93dd346a6399b4345",
      "parents": [
        "922ba7ea0d3ffd3a5403e4d6193cec5151b2474d",
        "35a4f486cb0a2a600a4ea346b4615ad0ea189dc2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 15:46:56 2018 +0000"
      },
      "message": "Merge \"Add support for loading trusted dex files.\""
    },
    {
      "commit": "2b80ed488c497393270c98f7a767d8495166db8e",
      "tree": "e1c249285b2e441b56ec7faf06757f3fe7affde5",
      "parents": [
        "a6ce173839a1bca1811fca7d9a0a39efd720611d"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 08 08:58:15 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Thu May 10 08:23:22 2018 -0700"
      },
      "message": "Make dexlayout and profman build without libart\n\nUse libprofile and libartbase to remove the dependencies on libart for\ndexlayout and profman.  dexdiag remains connected to libart because of\nvdex file APIs.\n\nBug: 78652467\nTest: make -j 40 test-art-host-gtest\nChange-Id: Ie4d58e7e75aa725a6d453a9d4c7fefd868aa7b2d\n"
    },
    {
      "commit": "922ba7ea0d3ffd3a5403e4d6193cec5151b2474d",
      "tree": "e6136d9e48261a760b707e55b80bc3abaaeb5c8f",
      "parents": [
        "922501b4bbf724e4259477a27764291684eedffb",
        "e4f1c51df96c5a690b263ce9020d3fe97b33b84e"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Thu May 10 15:12:27 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 15:12:27 2018 +0000"
      },
      "message": "Merge changes I08f1acd0,I398e9baf\n\n* changes:\n  Support a chroot-based environment in ART Buildbot\u0027s target harness.\n  Support ART on-device testing in a chroot environment.\n"
    },
    {
      "commit": "59a49a6fe102b26aacda906b6a2c466d84819c73",
      "tree": "f33b21de298b1943ae3483ba877cdbf50313e049",
      "parents": [
        "48af3b39cd7c8abaa7f9671191ec8260630239b2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 09 10:58:27 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu May 10 12:38:11 2018 +0100"
      },
      "message": "Implement VMDebug API to mark a class \"platform\"\n\nAdd a native implementation of VMDebug.allowHiddenApiReflectionFrom\nwhich takes a Class object and sets a new access flag\nkAccSkipAccessChecks on the corresponding mirror::Class instance.\n\nThe function will throw a SecurityException if the process has not\nbeen forked as Java debuggable.\n\nhiddenapi::IsCallerInPlatformDex is extended to take an optional\nargument of the mirror::Class of the caller. If it is set and\nthe class has kAccSkipAccessChecks, the caller is allowed to\nacccess non-SDK APIs.\n\nNote that the mirror::Class of the caller is only provided for\nreflection and JNI. The access flag is ignored for other means of\naccess.\n\nBug: 64382372\nTest: N/A\nChange-Id: I2bf0ca7dcb45c17fe91eb2d421c947b892bd6fec\n"
    },
    {
      "commit": "35a4f486cb0a2a600a4ea346b4615ad0ea189dc2",
      "tree": "70ede18189598146e1419f8fc52b85fd09e8ed4c",
      "parents": [
        "abd9e1515bc6be88372c61071971c5432a51553d"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 09 14:49:54 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 10 12:29:10 2018 +0100"
      },
      "message": "Add support for loading trusted dex files.\n\nWhich can use hidden APIs.\n\nbug: 64382372\nTest: m\nChange-Id: Ifd40b49270c11ad51281b2127532952fb5206a9d\n"
    },
    {
      "commit": "922501b4bbf724e4259477a27764291684eedffb",
      "tree": "a018bc2b120a845b6ae72d15882c151dfc7cc0ae",
      "parents": [
        "9d7905fffb9eca8f4fa6f3f3d7d3deb9718e3005",
        "6d5b7e38fd5aba9eaad3a630b4859d214fa8f77c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 10 10:22:29 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 10 10:22:29 2018 +0000"
      },
      "message": "Merge \"ART: Clean up after HInstruction::Is##type() rewrite.\""
    },
    {
      "commit": "9d7905fffb9eca8f4fa6f3f3d7d3deb9718e3005",
      "tree": "96ec3e56325a6ea7618613ef96b04022612f7907",
      "parents": [
        "d10995609f9fd8b85db1a5143b124195805ca5bb",
        "016fcbe2d24a99b688ae2b5c03ce13d270a97886"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 09 22:12:07 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 22:12:07 2018 +0000"
      },
      "message": "Merge \"Support system server ART-profiling\""
    },
    {
      "commit": "016fcbe2d24a99b688ae2b5c03ce13d270a97886",
      "tree": "96ec3e56325a6ea7618613ef96b04022612f7907",
      "parents": [
        "d10995609f9fd8b85db1a5143b124195805ca5bb"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 03 19:47:35 2018 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 09 22:11:54 2018 +0000"
      },
      "message": "Support system server ART-profiling\n\nWe don\u0027t have to map the code cache as executable if we only want to save\nprofiles. This enables system server profiling without disabling SElinux\nto bypass the jit code cache exec-mapping.\n\nTest: m test-art-host\n      boot a device with system server profiling enabled.\nBug: 73313191\n\nChange-Id: I7f25a905e0b23456183e39e58ad8f4b829ddf0c5\n"
    },
    {
      "commit": "d10995609f9fd8b85db1a5143b124195805ca5bb",
      "tree": "0a1655658fe2ca7e8e69233bf5bf12b5feb5a836",
      "parents": [
        "97dc711074ae195bb0b43e24398a46d7fd22a860",
        "d5aeadeac0debd90d0a931c1d41bee6a2d32b209"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 09 21:44:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 21:44:00 2018 +0000"
      },
      "message": "Merge \"Clear the profile if we fail to add new methods or classes\""
    },
    {
      "commit": "d5aeadeac0debd90d0a931c1d41bee6a2d32b209",
      "tree": "2d21d88d082bcd7c4be932a78d108b6fd62c8342",
      "parents": [
        "9926e4615d75cb6c9371e1766a14b0a80089ae18"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue May 08 18:23:24 2018 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 09 13:08:06 2018 -0700"
      },
      "message": "Clear the profile if we fail to add new methods or classes\n\nWe may fail to add new data in the profile if it contains outdated data\n(e.g. if the dex files we profiled were updated in the meantime). If this\nhappens, clear the profile to ensure we don\u0027t keep around useless data.\n\nTest: m test-art-host, 595-profiling-saving\nBug: 77839992\nBug: 79200824\n\nChange-Id: I238d56ba4eeec96a3464e42f164d0e798f555ec4\n"
    },
    {
      "commit": "97dc711074ae195bb0b43e24398a46d7fd22a860",
      "tree": "4c09fa85c4fa2a36131e0683886a66df4b7a165c",
      "parents": [
        "48af3b39cd7c8abaa7f9671191ec8260630239b2",
        "5db8b7b821d0b77cb3b041de7861b7d635050cc2"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Wed May 09 17:56:08 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 17:56:08 2018 +0000"
      },
      "message": "Merge \"ART: Relayout BaseMutex and Mutex\""
    },
    {
      "commit": "6d5b7e38fd5aba9eaad3a630b4859d214fa8f77c",
      "tree": "c6e9d055840bbc5a9b57de2128656d80f6ef7cd6",
      "parents": [
        "48af3b39cd7c8abaa7f9671191ec8260630239b2"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 16:52:48 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 16:57:43 2018 +0100"
      },
      "message": "ART: Clean up after HInstruction::Is##type() rewrite.\n\nAddress late comments on\n    https://android-review.googlesource.com/679021 .\n\nTest: Rely on TreeHugger.\nChange-Id: Id82976651aced36b8ee2808b6a9effbfb3224d42\n"
    },
    {
      "commit": "48af3b39cd7c8abaa7f9671191ec8260630239b2",
      "tree": "e60438ef346afff8b64d9a9e008e2385c96afd74",
      "parents": [
        "07a8adec764f6e76e0c6acb49ab57f8d5b0c2f69",
        "a90dd515c4451ad3d6e7ecdf0f0527fcc1e32d91"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 15:22:49 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 15:22:49 2018 +0000"
      },
      "message": "Merge \"Reimplement HInstruction::Is##type().\""
    },
    {
      "commit": "07a8adec764f6e76e0c6acb49ab57f8d5b0c2f69",
      "tree": "93e8ddd922b1ed97b056b85cde074ef6510c9316",
      "parents": [
        "4ed794415b5fa1d45e87409f592fbcb314fc7e34",
        "96e754c9389dfe47bc4e8d174b78e9e806533bf8"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 13:56:28 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 13:56:28 2018 +0000"
      },
      "message": "Merge \"ART: Remove unused JobjectComparator.\""
    },
    {
      "commit": "4ed794415b5fa1d45e87409f592fbcb314fc7e34",
      "tree": "7e0e4c7888c2497d86ce96c9574d7c9886721ccf",
      "parents": [
        "abd9e1515bc6be88372c61071971c5432a51553d",
        "a3ad0cdd711857f04f477e2cdc5b56a2c74a3018"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 12:30:40 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 12:30:40 2018 +0000"
      },
      "message": "Merge \"ART: Move JNI files to runtime/jni/ .\""
    },
    {
      "commit": "96e754c9389dfe47bc4e8d174b78e9e806533bf8",
      "tree": "93e8ddd922b1ed97b056b85cde074ef6510c9316",
      "parents": [
        "a3ad0cdd711857f04f477e2cdc5b56a2c74a3018"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 10:52:40 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 11:11:18 2018 +0100"
      },
      "message": "ART: Remove unused JobjectComparator.\n\nUnused since\n    https://android-review.googlesource.com/144043 .\n\nTest: Rely on TreeHugger.\nChange-Id: I0cf004e66ba2698bb3dc45804d71f9d5ee3647fd\n"
    },
    {
      "commit": "a3ad0cdd711857f04f477e2cdc5b56a2c74a3018",
      "tree": "7e0e4c7888c2497d86ce96c9574d7c9886721ccf",
      "parents": [
        "abd9e1515bc6be88372c61071971c5432a51553d"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 10:06:38 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 11:11:09 2018 +0100"
      },
      "message": "ART: Move JNI files to runtime/jni/ .\n\nTest: Rely on TreeHugger.\nChange-Id: I9cae11191ef1567ae9453be498882a7767285140\n"
    },
    {
      "commit": "abd9e1515bc6be88372c61071971c5432a51553d",
      "tree": "821b3e27a022ff907cfe0b953140ed4ed354c8d8",
      "parents": [
        "2cd2eea6d14acdc4a9b62df7e9fcffd997962da3",
        "5a2993cd9a158a8fb36d1fdd65d796b3e6e6db2c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 08:44:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 08:44:56 2018 +0000"
      },
      "message": "Merge \"ART: Templatize DexFileVerifier::CheckIntraIdSection().\""
    },
    {
      "commit": "2cd2eea6d14acdc4a9b62df7e9fcffd997962da3",
      "tree": "fbdd7c7db6757872bf0a80229d6cb76207de9a03",
      "parents": [
        "4972754f2327dc9c443f2c0c70e5a6528973c435",
        "2da52b084b940a5330aa985b687c852495bc38ff"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Wed May 09 08:22:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 08:22:59 2018 +0000"
      },
      "message": "Merge \"ART: Add --dump-pass-timings compiler option.\""
    },
    {
      "commit": "4972754f2327dc9c443f2c0c70e5a6528973c435",
      "tree": "e2bcf3f2a93084ea0df204997f3db08c0c1c8f7e",
      "parents": [
        "6af9869de823b837ebbd18b407ff29949f7db84f",
        "1f9d3c3a11cd106246d814ac02b6dafd881f40ad"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 09 08:10:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 08:10:19 2018 +0000"
      },
      "message": "Merge changes from topic \"hiddenapi-cherrypick\"\n\n* changes:\n  Fix hiddenapi::MemberSignature for proxies\n  Do not overwrite hidden access flags for intrinsics\n  Fix race in hidden_api.h\n  Fix hidden API flags decoding for intrinsics\n  Set hidden API flags of intrinsics\n  Use tron for logging hidden API accesses.\n  Add VMRuntime.setDedupeHiddenApiWarnings().\n  Add note about tests impacted by kLogAllAccesses flag.\n  Fix test after ag/3881475.\n  Log for light grey API accesses.\n  Log an event on hidden API accesses.\n  Consider whitelist when listing class members.\n  Treat hidden API exemptions as whitelist.\n  Fix verifier/linker IncompatibleClassChangeError with hidden API\n  Replace kAllLists policy with kJustWarn.\n"
    },
    {
      "commit": "6af9869de823b837ebbd18b407ff29949f7db84f",
      "tree": "f88cb05d01645e777804fa059d365521dc935d48",
      "parents": [
        "a6ce173839a1bca1811fca7d9a0a39efd720611d",
        "b3d1eeed7426570f61a0b0d4be1a2987200311f6"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Wed May 09 01:56:32 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 09 01:56:32 2018 +0000"
      },
      "message": "Merge \"Add new profile saver options: save without jit \u0026 profile AOT code\""
    },
    {
      "commit": "5db8b7b821d0b77cb3b041de7861b7d635050cc2",
      "tree": "04550e7131d527186e34b4c2d1b3be1a1d357bf7",
      "parents": [
        "a6ce173839a1bca1811fca7d9a0a39efd720611d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 08 16:10:59 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 08 16:12:41 2018 -0700"
      },
      "message": "ART: Relayout BaseMutex and Mutex\n\nReduce size of BaseMutex (and thus all derived mutex classes) by changing\nthe field layout. Reduction from 24B to 16B on 64-bit systems.\n\nBug: 79365543\nTest: m test-art-host\nChange-Id: Id7b50aa9af1ae5d249e62573ab67257c12922bfa\n"
    },
    {
      "commit": "a6ce173839a1bca1811fca7d9a0a39efd720611d",
      "tree": "b0e1bf92b900a8fba3d85553f96849d5fe8abd1f",
      "parents": [
        "041d577bdd040913b791faf4dcdd717796249c01",
        "238c963a08f9d2c1a39805c2daa9c32482bd9e36"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 08 22:19:19 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 22:19:19 2018 +0000"
      },
      "message": "Merge \"Do not use clang lld for oatdump tests\""
    },
    {
      "commit": "041d577bdd040913b791faf4dcdd717796249c01",
      "tree": "19451a688a4c5d083204873adf960fb1ac4abbe8",
      "parents": [
        "b865d9af3bb5f4777dbe9cbd60cdb2a8fe5f0557",
        "e40f65f36ec441b4d1a0a769c72d6ca70e099115"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Tue May 08 20:17:34 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 20:17:34 2018 +0000"
      },
      "message": "Merge \"ART: Relayout ProfilingInfo\""
    },
    {
      "commit": "238c963a08f9d2c1a39805c2daa9c32482bd9e36",
      "tree": "5fe6777ea55227e6efc07229946426b46a05f553",
      "parents": [
        "d94a00cdf0519ff92dff1ee59a5a42234a391ddd"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 08 10:22:52 2018 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 08 10:22:52 2018 -0700"
      },
      "message": "Do not use clang lld for oatdump tests\n\nBug: 79417743\nTest: HOST_PREFER_32_BIT\u003dtrue m -j32 test-art-host-gtest-oatdump_app_test\nChange-Id: If217972d4983ef8c3425afb70cc59a227e576ee3\n"
    },
    {
      "commit": "5a2993cd9a158a8fb36d1fdd65d796b3e6e6db2c",
      "tree": "230c7643d031d5d57500b0219f9ab95e3d1f87ee",
      "parents": [
        "b865d9af3bb5f4777dbe9cbd60cdb2a8fe5f0557"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 18:11:25 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 18:19:15 2018 +0100"
      },
      "message": "ART: Templatize DexFileVerifier::CheckIntraIdSection().\n\nAnd use macros in DexFileVerifier::CheckIntraSection() to\navoid code duplication.\n\nThis is a follow-up to\n    https://android-review.googlesource.com/672438\nbut the improvements in instruction count measured on host\nwith \"perf stat dexdump2 -c \u003clarge apk\u003e\" are absolutely\ninsignificant (0.0003%).\n\nTest: Rely on TreeHugger.\nChange-Id: I95fd3b2f7f2d767e5446dd71552b34ea55f4bd47\n"
    },
    {
      "commit": "a90dd515c4451ad3d6e7ecdf0f0527fcc1e32d91",
      "tree": "1d551b2ce84dd87e7622d011354cea24b856047a",
      "parents": [
        "b865d9af3bb5f4777dbe9cbd60cdb2a8fe5f0557"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 15:04:45 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 17:16:51 2018 +0100"
      },
      "message": "Reimplement HInstruction::Is##type().\n\nUse a table-based implementation for abstract kinds. This\nimplementation can be fully inlined and even eliminated if\nthe range of possible kinds is known.\n\nThere is a small (\u003c0.5%) improvement of dex2oat compile\ntime for a big app (sum of \"Compile Dex File Quick\" dumped\nfor --dump-timings with the timing of compiler passes hacked\naway) on aosp_taimen-userdebug, little cores, -j4. The sizes\nof libart-compiler.so have changed:\n  - lib/libart-compiler.so: 2178608 -\u003e 2169136 (-9472)\n    .rodata: 0xd36c -\u003e 0xd55c (+496)\n    .text: 0x175914 -\u003e 0x175f44 (+1584)\n    .data.rel.ro: 0xa858 -\u003e 0x84e8 (-9072)\n  - lib64/libart-compiler.so: 3091432 -\u003e 3064248 (-27184)\n    .rodata: 0x15aa4 -\u003e 0x15c94 (+496)\n    .text: 0x203304 -\u003e 0x202294 (-4208)\n    .data.rel.ro: 0x151d8 -\u003e 0x10a68 (-18288)\nNote that .data.rel.ro is always dirty memory, .rodata and\n.text is always clean.\n\nTest: Rely on TreeHugger\nChange-Id: I95e6040ecd23cad83f024970c3bf785d32169deb\n"
    },
    {
      "commit": "2da52b084b940a5330aa985b687c852495bc38ff",
      "tree": "61d01d2391bc6e65ecfcbc636159369e9425c59c",
      "parents": [
        "b865d9af3bb5f4777dbe9cbd60cdb2a8fe5f0557"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 16:31:34 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 17:06:26 2018 +0100"
      },
      "message": "ART: Add --dump-pass-timings compiler option.\n\nThis replaces the old --dump-passes option removed in\n    https://android-review.googlesource.com/549200 .\nUsing --dump-timing for timing optimization passes makes\nthe high level timings useless, so return to using two\ndifferent options for these.\n\nTest: Manually run dex2oat with --dump-timings,\n      --dump-pass-timings and both.\nChange-Id: Iddc4cfee35652fb493656e7d6081a898c2894f72\n"
    },
    {
      "commit": "e4f1c51df96c5a690b263ce9020d3fe97b33b84e",
      "tree": "50754bc1db965d4456fc89291bb2708aae2920e5",
      "parents": [
        "76cfe61b0c20f7c9d9ba9b60b188f483d81c5f68"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Oct 30 13:28:28 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 08 13:55:56 2018 +0100"
      },
      "message": "Support a chroot-based environment in ART Buildbot\u0027s target harness.\n\nWhen ART_TEST_CHROOT is defined, instead of having the ART Buildbot\ninstall ART into a local path (set with ART_TEST_ANDROID_ROOT) and\nhijack the linker (using CUSTOM_TARGET_LINKER), prepare and use a\nchroot environment (set with ART_TEST_CHROOT).\n\nIn this scenario, ART and its dependencies can be built and used\nnormally (in particular, when building from the master-art Android\nmanifest) and still be executed as a standalone runtime outside of\nthe device\u0027s /system path, for testing purposes.\n\nTest: Have the ART Buildbot build and run ART on device with chroot.\nBug: 34729697\nBug: 68125496\nChange-Id: I08f1acd0d2813584f703fedb84e69df954cbdbda\n"
    },
    {
      "commit": "76cfe61b0c20f7c9d9ba9b60b188f483d81c5f68",
      "tree": "7ac27f14dedefc355c9f890d339397b8fdcb3e52",
      "parents": [
        "b865d9af3bb5f4777dbe9cbd60cdb2a8fe5f0557"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Mon Oct 30 13:14:28 2017 +0000"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 08 13:55:56 2018 +0100"
      },
      "message": "Support ART on-device testing in a chroot environment.\n\nThis change updates the ART test rules and scripts to allow\ninstallation and ART testing in a chroot directory on device.\n\nAll existing ART testing is supported:\n- ART gtests (with and without Valgrind).\n- ART run-tests.\n- libcore tests (with companion CL in external/vogar).\n- JDWP tests (with companion CL in external/vogar).\n\nTest: Run ART tests (gtest, run-tests, libcore tests, JDWP tests) in chroot\nBug: 34729697\nBug: 68125496\nChange-Id: I398e9bafee61eccd98d827ab8d9b8f6395aaa853\n"
    },
    {
      "commit": "b865d9af3bb5f4777dbe9cbd60cdb2a8fe5f0557",
      "tree": "8cad1b90006fa620dec995b71c80ee5f47081990",
      "parents": [
        "1b19877e78f58ff3f676845380ec1280791d9500",
        "e394622583774d7e3c32bea0c7ffc4777ee47e56"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 12:13:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 12:13:53 2018 +0000"
      },
      "message": "Merge changes I506bc2a8,I7310de97,Ib3fd1110\n\n* changes:\n  ART: Do not define abstract HIR kinds.\n  ART: Remove InstructionTypeEquals().\n  Store HIR type in HInstruction::packed_field_.\n"
    },
    {
      "commit": "e394622583774d7e3c32bea0c7ffc4777ee47e56",
      "tree": "129435b4db6c780b1750b3a1a9b3f4cc8612b322",
      "parents": [
        "0dcccd815684b4c7540f9c6d39de161e44e5f51c"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 14:18:47 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 11:36:11 2018 +0100"
      },
      "message": "ART: Do not define abstract HIR kinds.\n\nThey were never used and the two cases in HSchedulerARM64\u0027s\nIsSchedulable() were unreachable.\n\nTest: Rely on TreeHugger.\nChange-Id: I506bc2a89a6fbf556f32e25ecfe61eaad236a40a\n"
    },
    {
      "commit": "0dcccd815684b4c7540f9c6d39de161e44e5f51c",
      "tree": "89fce5c16f7d05f81c302a75e2ff744a002a1a3e",
      "parents": [
        "bd78567cef305e35481734b7fc24f68ded031439"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 13:32:25 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 11:36:11 2018 +0100"
      },
      "message": "ART: Remove InstructionTypeEquals().\n\nAvoid the virtual call and simply compare the instruction\nkinds.\n\nTest: Rely on TreeHugger.\nChange-Id: I7310de976614c5ec63d61a447a40047de5bc654d\n"
    },
    {
      "commit": "bd78567cef305e35481734b7fc24f68ded031439",
      "tree": "e3873b73e3631c5cd70c1a3f8f38e79dad25d890",
      "parents": [
        "9926e4615d75cb6c9371e1766a14b0a80089ae18"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 03 17:09:09 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 11:36:11 2018 +0100"
      },
      "message": "Store HIR type in HInstruction::packed_field_.\n\nThis is similar to\n    https://android-review.googlesource.com/609566\nthough the performance impact has not been measured.\nHowever, avoiding a virtual call reduces pressure on the\nbranch predictor and provides better optimization\nopportunities for the C++ compiler.\n\nAs there is now no difference between HTemplateInstruction\u003c\u003e\nand HExpression\u003c\u003e (the type is stored in HInstruction), we\nremove the former and use HExpression\u003c\u003e for all instructions\nthat have a fixed number of inputs.\n\nTest: Rely on TreeHugger.\nChange-Id: Ib3fd111048b0ac38ee65386a7e5af70c5ccc98de\n"
    },
    {
      "commit": "1f9d3c3a11cd106246d814ac02b6dafd881f40ad",
      "tree": "13e8e39c02df0b610e505901ed6731ee49334ed9",
      "parents": [
        "bb0454a067389a7a1370d2150bf59efd5aac20a1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 02 16:53:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:55 2018 +0100"
      },
      "message": "Fix hiddenapi::MemberSignature for proxies\n\nProxy classes are classes generated at runtime which implement\na given interface. Because they do not inherit the associated\ndex file form the interface(s), names/signatures of methods cannot\nbe requested directly, but rather through the original interface\nmethod. Calling getName() on a proxy mirror::Class also triggers\na DCHECK.\n\nThis patch will refer to the interface method when printing the\nsignature instead of the proxy method.\n\nThis fixes the warning printed for the proxy method, printing\neven the class name of the interface instead of the name of the\nproxy class. This is meant to provide useful info to the devloper.\n\nProxies do not define fields except for the synthetic \u0027interfaces\u0027\nand \u0027throws\u0027 fields. Their signatures remain unchanged.\n\nThis patch also continues to check the access flags of the proxy\nmethod for performance reasons. De-proxying the method would\nintroduce two new memory accesses into the fast path. That means\ndeduplication of warnings remains independent between the original\nand proxy methods.\n\nBug: 78327881\nTest: make test-art-host-gtest-hidden_api_test\nMerged-In: I8f334e5e2b62ca38691c94524edaf198eb73574b\nChange-Id: I8f334e5e2b62ca38691c94524edaf198eb73574b\n(cherry picked from commit 73a64f6a2a475c2fe018c7ab1151e3f44d316533)\n"
    },
    {
      "commit": "bb0454a067389a7a1370d2150bf59efd5aac20a1",
      "tree": "1f1c6e58290159dca8f0e946317d16295faf629e",
      "parents": [
        "39512f5ac08fb8b567336d7c3874065fce062ce7"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 26 16:52:11 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:46 2018 +0100"
      },
      "message": "Do not overwrite hidden access flags for intrinsics\n\nDeduplicating warnings works by overwriting the runtime access flags\nof a method/field to move it from a greylist to the whitelist. This\ntriggers a CHECK when attempted on an intrinsic as their ordinal bits\nclash with the hidden API access flags. Do not attempt to deduplicate\nfor those.\n\nBug: 78574586\nTest: (cd cts/tests/signature ; ./runSignatureTests.sh)\nMerged-In: I39e555a0f4cd5f662eea348baf4ef72a5827306d\nChange-Id: I39e555a0f4cd5f662eea348baf4ef72a5827306d\n(cherry picked from commit 8a6b2f3353d81d8ceb6826bd7b1dd1987c1a6fee)\n"
    },
    {
      "commit": "39512f5ac08fb8b567336d7c3874065fce062ce7",
      "tree": "71a972a6091ec457a8e94c2b5ffac20bb25c1240",
      "parents": [
        "166546c3579b7a9deb413f8e44ad94b8ed41335b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 23 13:51:16 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:37 2018 +0100"
      },
      "message": "Fix race in hidden_api.h\n\nThe hidden API decision logic can dedupe warnings by changing the\naccess flags of a previously warned about method to whitelist, thus\nexiting early on the next attempt to access it. This logic had a race\nin it, because it would decode the flags, make a decision and then\ndecode them again when printing a warning. If another thread changed\nthe flags in between, the warning would say \"whitelist\".\n\nChange the code so that the hidden API flags are decoded only once.\nThis may still result in multiple warnings about the same API, but at\nleast the messages will be consistent.\n\nBug: 78327881\nBug: 64382372\nTest: none\nMerged-In: I956dd56536bdfce492845e6a90fdcbe29c2676b5\nChange-Id: I956dd56536bdfce492845e6a90fdcbe29c2676b5\n(cherry picked from commit b8c6619f16348403c3933d9e425b4b8c80af5389)\n"
    },
    {
      "commit": "166546c3579b7a9deb413f8e44ad94b8ed41335b",
      "tree": "766450bb9576909e925c5e7d5e1b81c25dd05839",
      "parents": [
        "2e6f69c704202d41f0ab5ab0aa65583a26184e51"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Apr 23 13:50:38 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:23 2018 +0100"
      },
      "message": "Fix hidden API flags decoding for intrinsics\n\nHidden API decision logic would try to decode the access flags of\nintrinsics directly, bypassing the override in ArtMethod. This patch\nget hidden_api.h to use the same code path.\n\nThis also fixes CtsHiddenApiDiscoveryTestCases where the access flags\nof blacklisted APIs are tested. VarHandle intrinsics would not pass.\n\nBug: 64382372\nBug: 72430785\nBug: 78230396\nTest: cts-tradefed run cts --module CtsHiddenApiDiscoveryTestCases\nMerged-In: I080313dd91bbee2d7d98b00c02e224974b344c01\nChange-Id: I080313dd91bbee2d7d98b00c02e224974b344c01\n(cherry picked from commit 14c212a44ac9a3ad12025ebf30836129669fa949)\n"
    },
    {
      "commit": "1b19877e78f58ff3f676845380ec1280791d9500",
      "tree": "b4069e7022aeb9758c8fefcc13521341c67e57ac",
      "parents": [
        "d94a00cdf0519ff92dff1ee59a5a42234a391ddd",
        "9a6ca9f645c76e9081d8de39e6d98377e208a650"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Tue May 08 09:32:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 08 09:32:14 2018 +0000"
      },
      "message": "Merge \"MIPS: Skip output verification for assembler tests.\""
    },
    {
      "commit": "2e6f69c704202d41f0ab5ab0aa65583a26184e51",
      "tree": "a9fc475db54eca326fa46eebf90a3f1399fa7d1c",
      "parents": [
        "1724520ec2788838413b20672f73afa5a00b0d4c"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 19 12:41:04 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:14 2018 +0100"
      },
      "message": "Set hidden API flags of intrinsics\n\nIntrinsics overwrite the hidden API access flags of the respective Java\nmethod, which is why we need to hardcode their API list membership.\n\nVarHandle intrinsics are blacklisted because they could be used to\nbypass hidden API checks and given they are new in P, should not be\nused by anybody except tests (that do not enforce API checks).\n\nThe remaining intrinsics which happen to be @hide are put on light\ngreylist. We used to put them on whitelist implicitly, hence never\nsaw warnings about them. To be safe, we put them on light grey.\n\nNote that these are set even for the core image that currently does\nnot have hidden API flags. That is fine because (a) VarHandles can\nstill be tested, and (b) light greylist membership may print warnings\nbut will not change the semantics.\n\nBug: 64382372\nBug: 77733081\nTest: make\nMerged-In: Ia9a7765260acb533560676e7dfcd51065cfb247d\nChange-Id: Ia9a7765260acb533560676e7dfcd51065cfb247d\n(cherry picked from commit 49dded0c15dbf3d7c3920ae4744c93c2d6081202)\n"
    },
    {
      "commit": "1724520ec2788838413b20672f73afa5a00b0d4c",
      "tree": "bac735898ef8f9750fcc1fdf04c4538aa6abed22",
      "parents": [
        "c9c87f63f7809568fbab751c8f07107e6151cced"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 12 13:56:37 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:32:05 2018 +0100"
      },
      "message": "Use tron for logging hidden API accesses.\n\nExample output:\nsysui_multi_action: [757,1391,1392,1,1394,Ldalvik/system/VMRuntime;-\u003egetRuntime()Ldalvik/system/VMRuntime;]\nsysui_multi_action: [757,1391,1392,1,1393,1,1394,Ldalvik/system/VMRuntime;-\u003esetHiddenApiExemptions([Ljava/lang/String;)V]\n\nTest: m\nTest: $ adb shell settings put global \\\nTest:     hidden_api_access_log_sampling_rate 65536\nTest: $ adb lolcat -b events | grep sysui_multi_action | grep 1390\nBug: 77517571\nMerged-In: I23548f902d2ff56ad00534421bf8afa902edaa75\nChange-Id: I23548f902d2ff56ad00534421bf8afa902edaa75\n(cherry picked from commit 2d4d62f2c4cb6f4a659333263a32f7d94c08fc11)\n"
    },
    {
      "commit": "c9c87f63f7809568fbab751c8f07107e6151cced",
      "tree": "0e5638287e956bec467829159bbb1878d123eec4",
      "parents": [
        "0a054d3e8d00ba4f9841883bf3f8452b8578cf6a"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 19 14:40:40 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:56 2018 +0100"
      },
      "message": "Add VMRuntime.setDedupeHiddenApiWarnings().\n\nThis exposes the equivalently named functionality in arts Runtime class.\n\nTest: m\nBug: 78268765\nMerged-In: If5b2fff70a079d588ae3bba706ab7f572afac0b2\nChange-Id: If5b2fff70a079d588ae3bba706ab7f572afac0b2\n(cherry picked from commit 80900a3c6746a64b17121734af776f49f0570723)\n"
    },
    {
      "commit": "0a054d3e8d00ba4f9841883bf3f8452b8578cf6a",
      "tree": "01a4725fab2c772f7a6748f008432f373428ebb4",
      "parents": [
        "523cd63ce4b705d07e3ebfe04807c24860f20346"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 12 15:43:11 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:46 2018 +0100"
      },
      "message": "Add note about tests impacted by kLogAllAccesses flag.\n\nTest: m\nBug: 64382372\nMerged-In: Ief4d0596eeff7ed711556b2a23165871d6e06ac3\nChange-Id: Ief4d0596eeff7ed711556b2a23165871d6e06ac3\n(cherry picked from commit 6d6012ec03d20dd0a450715c41e15d710550f0ac)\n"
    },
    {
      "commit": "523cd63ce4b705d07e3ebfe04807c24860f20346",
      "tree": "630d6e5befd64fc6517669c7113da9d8e9100cff",
      "parents": [
        "85b5a57020dd1a61ae5148ff7c854d4323720afd"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 12 14:30:11 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:38 2018 +0100"
      },
      "message": "Fix test after ag/3881475.\n\nA side effect of warning for light greylist accesses is that we also check\nthe API exemptions list for then, changing the return value for such APIs\nfrom AllowButWarn to Allow.\n\nBug: 64382372\nTest: art/test.py --host -t 674-hiddenapi\nMerged-In: I45f50e5e2ab37b1c8adb09f198e268390dd84e55\nChange-Id: I45f50e5e2ab37b1c8adb09f198e268390dd84e55\n(cherry picked from commit 724e9c8cdb75cd606fe583fd2502783046d62796)\n"
    },
    {
      "commit": "85b5a57020dd1a61ae5148ff7c854d4323720afd",
      "tree": "d05a45fb998cd3364d29c524b86dde4172c156ec",
      "parents": [
        "1fd97f29d646770c5e8ddee2e8fe468ffcc9ea2c"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Apr 11 16:08:21 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:30 2018 +0100"
      },
      "message": "Log for light grey API accesses.\n\nFor the public Beta 1 build, it seems likely that 3P devs will want to\ncheck the logcat for hidden API accesses by their own apps. So enable\nthis logging for light grey API accesses.\n\nThe option can easily be diabled again later by setting the new flag to\nfalse (which should be done before public release).\n\nBug: 64382372\nTest: m\nTest: Verify logcat output\nMerged-In: Ie610ebcf712a0abc3f1c200510048e2c93b712f7\nChange-Id: Ie610ebcf712a0abc3f1c200510048e2c93b712f7\n(cherry picked from commit 27199e603fb9a80f35976eab63e5f400808598bc)\n"
    },
    {
      "commit": "1fd97f29d646770c5e8ddee2e8fe468ffcc9ea2c",
      "tree": "be2fbd393abfe438c1e734055f1d3d084755e6a6",
      "parents": [
        "9a13d423c71517bc9cb3cf40e97dd0f6f5d5c72c"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Apr 03 15:32:32 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:20 2018 +0100"
      },
      "message": "Log an event on hidden API accesses.\n\nThe new event consists of:\n- The type of access (reflection, JNI, etc.)\n- The action taken (warn or deny)\n- The type of member accessed (field or method)\n- Name of the class which defined the member accessed\n- The name of the member\n- The type signature of the member (type of field, or method signature)\n\nThe fully qualified member name is also not included to avoid the overhead\nof building the string. It can be build from the information included.\n\nSimilarly, the package name, version, etc. are not included as they can\nbe inferred from the context when analyzing the event log.\n\nThe event is sampled, according to a sampling rate that can be set by a\nconfiguration option, to reduce log spam.\n\nTest: $ m\nTest: $ adb shell settings put global hidden_api_access_log_sampling_rate 65536\nTest: $ adb lolcat -b events | grep art_hidden_api_access\n\nSample output:\n16796 16796 I art_hidden_api_access: [1,0,Ldalvik/system/VMRuntime;,getRuntime,()Ldalvik/system/VMRuntime;]\n16796 16796 I art_hidden_api_access: [1,2,Ldalvik/system/VMRuntime;,setHiddenApiExemptions,([Ljava/lang/String;)V]\n16796 16796 I art_hidden_api_access: [1,3,Landroid/app/Activity;,mDoReportFullyDrawn,Z]\n(Timestamps have been elided)\n\nBug: 64382372\nBug: 77517571\nMerged-In: I012b2c9fbffbd00ed3219918e7a736a4f7435ec8\nChange-Id: I012b2c9fbffbd00ed3219918e7a736a4f7435ec8\n(cherry picked from commit 73ddda4403c8088a730b8d456de46bb8e0307ed8)\n"
    },
    {
      "commit": "9a13d423c71517bc9cb3cf40e97dd0f6f5d5c72c",
      "tree": "db25de5c310f8c3b14dbaad91bfe3b02a8a4c5b3",
      "parents": [
        "9a81945ca49de3c5b3969cc85278ecbadf238c84"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Apr 09 12:24:55 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:31:05 2018 +0100"
      },
      "message": "Consider whitelist when listing class members.\n\nPreviously, only the enforcement policy was considered when getting\ndeclared fields or members, meaning whitelisted APIs would still not be\ndiscoverable. Fix this by calling hiddenapi::GetMemberAction from within\nIsDiscoverable.\n\nBug: 77787686\nBug: 64382372\nTest: cts/tests/signature/runSignatureTests.sh (with ag/3863796)\nTest: art/test.py --host -t 674-hiddenapi\nMerged-In: I234d274f47f377e3e105c81aae2d49072287992a\nChange-Id: I234d274f47f377e3e105c81aae2d49072287992a\n(cherry picked from commit 64ee8aeaeb70aa2d5d1c3ff57a682a5001869653)\n"
    },
    {
      "commit": "9a81945ca49de3c5b3969cc85278ecbadf238c84",
      "tree": "c5d3e508727d1d2d58d7b29af22fd849c32c0544",
      "parents": [
        "4525e0b62cc808a49b4cd2c826bb52a768779e72"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 05 13:58:55 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:30:55 2018 +0100"
      },
      "message": "Treat hidden API exemptions as whitelist.\n\nThis was a request from android-api-council, effectively to treat\nexempted APIs as equivalent to public APIs. The reasoning for this is\nthat if the support library uses such APIs, we don\u0027t want to confuse\ndevelopers with a warning in the log.\n\nTo avoid examing the exemptions list on all light greylist API accesses,\nalso change the light greylist warn behavior to only print a warning in\nthe log if the app is debuggable. This means:\n- less log spam from light greylist usages\n- debuggable apps still get info about light greylist usage\n\nBug: 64382372\nTest: m\nTest: Boot device\nTest: $ adb shell settings put global hidden_api_blacklist_exemptions \\\nTest:     \"\\\"Landroid/app/Activity;-\u003emWindow:,Landroid/app/Activity;-\u003emCalled:\\\"\"\nTest: Verified with test app \u0026 adb logcat\nMerged-In: Ibada61b591517f7e72c7101aea04ff0ad4beb0ee\nChange-Id: Ibada61b591517f7e72c7101aea04ff0ad4beb0ee\n(cherry picked from commit c8ce5f520d2ba84ff8f393f78ba953ae6d467ca8)\n"
    },
    {
      "commit": "4525e0b62cc808a49b4cd2c826bb52a768779e72",
      "tree": "aba9be998bb3684dff53b4b56c0568fb7187502e",
      "parents": [
        "a8503d9696f37ff66b23016f3374ecbe59774dc6"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Apr 05 16:57:32 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:30:45 2018 +0100"
      },
      "message": "Fix verifier/linker IncompatibleClassChangeError with hidden API\n\nThe verifier and class linker will attempt to find a method with\nthe wrong type if it could not be found with the original type,\ni.e an interface method on a regular class and vice versa.\n\nThis logic did not previously take hidden API restrictions into\naccount and would result in bogus error messages to the user or\ndebug crashes.\n\nBug: 64382372\nBug: 77464273\nTest: art/test.py -r -t 674-hiddenapi\nMerged-In: If8327a70dd73b90249da3d9e505f0c6f89838f8e\nChange-Id: If8327a70dd73b90249da3d9e505f0c6f89838f8e\n(cherry picked from commit 54a99cfcf3d3463404fdf4152523dcc69b8648d7)\n"
    },
    {
      "commit": "a8503d9696f37ff66b23016f3374ecbe59774dc6",
      "tree": "ff05ba35980c063a046553885268fcffee04d535",
      "parents": [
        "d94a00cdf0519ff92dff1ee59a5a42234a391ddd"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Apr 05 16:10:25 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:30:33 2018 +0100"
      },
      "message": "Replace kAllLists policy with kJustWarn.\n\nIt seems pretty unlikely that we\u0027d ever want to disallow access to the\nlight greylist in P, since doing do would break do many apps. We don\u0027t need\nthis policy here as an opt-in for apps now, since the StrictMode work will\nachieve the same thing.\n\nInstead, make a kJustWarn policy which allows access to all APIs, but\nleaves the detection and logging logic in place. This gives us the option\nof disabling enforcement, but still gathering logs to find out which apps\nuse which APIs.\n\nAdd some tests for GetActionFromAccessFlags since the logic is getting\nmore complex.\n\nBug: 77517571\nTest: make test-art-host-gtest-hidden_api_test\nTest: boot device\nMerged-In: I2e6824d7ef53532d0836a2b6b1930cbbed196d0c\nChange-Id: I2e6824d7ef53532d0836a2b6b1930cbbed196d0c\n(cherry picked from commit 68693699d62bc7a2192f51be191ae81defcf4388)\n"
    },
    {
      "commit": "b3d1eeed7426570f61a0b0d4be1a2987200311f6",
      "tree": "ab6d525a4fe1e54645fb6828916f1ad602ca5ea6",
      "parents": [
        "9926e4615d75cb6c9371e1766a14b0a80089ae18"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Thu May 03 22:28:03 2018 -0700"
      },
      "committer": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Tue May 08 00:18:34 2018 +0000"
      },
      "message": "Add new profile saver options: save without jit \u0026 profile AOT code\n\n--Xps-save-without-jit-notifications\nThe hotness for system server code is increased in AOT-ed code. The flow\ndoes not call into JIT and as such notifications are not triggered.\nInstead of relying on the JIT system, make use of a simple back off\nstrategy to save the profile.\n\n--Xps-profile-aot-code\nStarts the profile saver even if the oat file is speed compiled.\n\nTest: m test-art-host\n      boot a device with system server profiling enabled.\nBug: 73313191\n\nChange-Id: I66ec422a76bc9244349da7a5d18a3df5bcc9ccb7\n"
    },
    {
      "commit": "e40f65f36ec441b4d1a0a769c72d6ca70e099115",
      "tree": "d5fb14a02c6ff61138540dad6ed141a9e62eca32",
      "parents": [
        "d94a00cdf0519ff92dff1ee59a5a42234a391ddd"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 07 17:02:22 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 07 17:12:54 2018 -0700"
      },
      "message": "ART: Relayout ProfilingInfo\n\nOrder the fields by size to save 8B (32B to 24B) for 64-bit libart.\n\nBug: 79365543\nTest: m test-art-host\nChange-Id: Ia452524caf31b0fd42c44e666fc95d07fef444b3\n"
    },
    {
      "commit": "d94a00cdf0519ff92dff1ee59a5a42234a391ddd",
      "tree": "42f0d5aab153495eca1e88055b92d0e15393e2a8",
      "parents": [
        "aed79fb35187efe7921d45ae6d3ca3cb66994b4d",
        "2697d581d133a2698f1021ee41732501d622491e"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon May 07 22:12:53 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 07 22:12:53 2018 +0000"
      },
      "message": "Merge \"ART: Relayout Region\""
    },
    {
      "commit": "2697d581d133a2698f1021ee41732501d622491e",
      "tree": "42f0d5aab153495eca1e88055b92d0e15393e2a8",
      "parents": [
        "aed79fb35187efe7921d45ae6d3ca3cb66994b4d"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 07 13:23:11 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon May 07 14:13:09 2018 -0700"
      },
      "message": "ART: Relayout Region\n\nRelayout the Region fields. Reduces required memory for a Region\nobject by 20% (80B to 64B). With the default run-test config, this\nreduces the Region array size from 164.4KB to 131.8KB.\n\nBug: 79365543\nTest: m test-art-host\nChange-Id: Ic044629decd3fabe4e8b964f10fee155ca65abf9\n"
    },
    {
      "commit": "aed79fb35187efe7921d45ae6d3ca3cb66994b4d",
      "tree": "adbe4005dcfc67891e965bcfe03f303740e92f4e",
      "parents": [
        "004403658805d28c044e0fbf055a136d4820b80e",
        "59962d73232c03832bc806a67670f96cb73b42eb"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Mon May 07 13:47:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon May 07 13:47:33 2018 +0000"
      },
      "message": "Merge \"Update expectations for 913-heaps for new D8 version\""
    },
    {
      "commit": "59962d73232c03832bc806a67670f96cb73b42eb",
      "tree": "adbe4005dcfc67891e965bcfe03f303740e92f4e",
      "parents": [
        "004403658805d28c044e0fbf055a136d4820b80e"
      ],
      "author": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Mon May 07 13:58:22 2018 +0200"
      },
      "committer": {
        "name": "Søren Gjesse",
        "email": "sgjesse@google.com",
        "time": "Mon May 07 14:00:31 2018 +0200"
      },
      "message": "Update expectations for 913-heaps for new D8 version\n\nUpdates to D8 causes the dex registers allocated to be different.\n\nTest: test/testrunner/testrunner.py -b --host -t 913\nChange-Id: Id1c49adea4da0cf80eb999b14800af11bc8ca31d\n"
    },
    {
      "commit": "004403658805d28c044e0fbf055a136d4820b80e",
      "tree": "29a38f4aee4392fc7580f630f7909fb11da15ee5",
      "parents": [
        "8ad1b14514a83bd76baf1826560f9d1c73ca0b62",
        "53af040f8c1a817dcb1e727a3e83baab3449569a"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 04 22:02:14 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 22:02:14 2018 +0000"
      },
      "message": "Merge changes from topic \"remove_art_tombstoned_parameter\"\n\n* changes:\n  ART: Remove tombstoned parameters\n  Revert \"ART: Support per PID stack trace files.\"\n"
    },
    {
      "commit": "53af040f8c1a817dcb1e727a3e83baab3449569a",
      "tree": "29a38f4aee4392fc7580f630f7909fb11da15ee5",
      "parents": [
        "b09abb2f8a988ccc95d91dc8624577188c771bc0"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 03 10:40:37 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 04 11:55:30 2018 -0700"
      },
      "message": "ART: Remove tombstoned parameters\n\nThese are no longer supported. Always try to use tombstoned when on\na device.\n\nBug: 77288304\nTest: m test-art-host\nTest: Device boots\nTest: manual ANR dumps work\nChange-Id: Iffd3287432becfc7982cdcb9a0cfe44f0c5b5143\n"
    },
    {
      "commit": "b09abb2f8a988ccc95d91dc8624577188c771bc0",
      "tree": "7cc2c3432b1533fd5fa50aed44b907c421f69507",
      "parents": [
        "8ad1b14514a83bd76baf1826560f9d1c73ca0b62"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu May 03 11:51:22 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri May 04 06:02:23 2018 -0700"
      },
      "message": "Revert \"ART: Support per PID stack trace files.\"\n\nRemove leftovers.\n\nThis reverts commit 84695aef89a3c42ea81c23f0590ae2ceca09ce6f.\n\nBug: 32064548\nBug: 77288304\nTest: m test-art-host\nChange-Id: I9b6f7f7daddd75ff47c7b17a91738858f0023605\n"
    },
    {
      "commit": "9a6ca9f645c76e9081d8de39e6d98377e208a650",
      "tree": "3e24ee038d1cb87811ca5b3836172ab4e538d581",
      "parents": [
        "9926e4615d75cb6c9371e1766a14b0a80089ae18"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 13:06:55 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 13:06:55 2018 +0100"
      },
      "message": "MIPS: Skip output verification for assembler tests.\n\nThese tests were taking too much time, skipping the output\nverification brings it down from ~60s to ~10s per test.\n\nTest: m test-art-host-gtest\nBug: 73903608\nChange-Id: Ifd55c8013dea92de631e7c033111959a794759f2\n"
    },
    {
      "commit": "8ad1b14514a83bd76baf1826560f9d1c73ca0b62",
      "tree": "041d33e1e2fb206f8d010bebea880cdd695eb8b5",
      "parents": [
        "d78842e84025a3012df856f98fcab21e7fcd51f9",
        "d1fa440902e55b6b032a2c5c06a356558e882007"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 11:56:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 11:56:17 2018 +0000"
      },
      "message": "Merge \"ARM: Remove VIXL dependency from ArmManagedRegister.\""
    },
    {
      "commit": "d78842e84025a3012df856f98fcab21e7fcd51f9",
      "tree": "7b2aee7b17c49c9b67a73aae47c9f440a4f66dde",
      "parents": [
        "3ec9fcc6c82834a3c0217d7082b7af5f7f59f81a",
        "7d2975388c111f342c10cdcef3f3ea604bf6865c"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Fri May 04 11:02:33 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 11:02:33 2018 +0000"
      },
      "message": "Merge \"ART: Disable 716-jli-jit-samples for jvmti stress tests\""
    },
    {
      "commit": "3ec9fcc6c82834a3c0217d7082b7af5f7f59f81a",
      "tree": "d52ba28046d2a928cc1318fc8a0f1dfd693daef3",
      "parents": [
        "9926e4615d75cb6c9371e1766a14b0a80089ae18",
        "e2b4195e3a562eb60a38c2beeba8ba97c689aeed"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Fri May 04 10:13:22 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 04 10:13:22 2018 +0000"
      },
      "message": "Merge \"[veridex] Reflection detection improvements.\""
    },
    {
      "commit": "7d2975388c111f342c10cdcef3f3ea604bf6865c",
      "tree": "c6c672d1607df41a1d258c9e6e0b4920e21c8c3f",
      "parents": [
        "9926e4615d75cb6c9371e1766a14b0a80089ae18"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri May 04 09:31:45 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Fri May 04 09:44:18 2018 +0100"
      },
      "message": "ART: Disable 716-jli-jit-samples for jvmti stress tests\n\nBug: 37272822\nTest: art/test.py --host --jvmti-stress -r -t 716\nTest: art/test.py --host --redefine-stress -r -t 716\nChange-Id: I77c3962b01701549c93fb33028dfcf87890373e1\n"
    },
    {
      "commit": "d1fa440902e55b6b032a2c5c06a356558e882007",
      "tree": "1775bf1d2d3640a0bf5e7dac0ea7c9b10d7951ca",
      "parents": [
        "9926e4615d75cb6c9371e1766a14b0a80089ae18"
      ],
      "author": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Thu May 03 15:43:13 2018 +0100"
      },
      "committer": {
        "name": "Vladimir Marko",
        "email": "vmarko@google.com",
        "time": "Fri May 04 09:22:48 2018 +0100"
      },
      "message": "ARM: Remove VIXL dependency from ArmManagedRegister.\n\nAlso remove unnecesary DWARF includes.\n\nMotivation: Preparing to move JNI calling conventions\nto runtime/ to unify the GenericJNI frame creation with\nthe JNI compiler.\n\nTest: Rely on TreeHugger.\nChange-Id: If8afc4a4fa41e41f0242962bb225b36633c1c153\n"
    },
    {
      "commit": "9926e4615d75cb6c9371e1766a14b0a80089ae18",
      "tree": "f3b88ab8699ce01d7fcb013b29d712f9c7863ebf",
      "parents": [
        "28c9c4764810fb7d92ebc78824f772529e7f8989",
        "0aa1e7010610c7acb9f69da6dd5360570e218b9d"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 23:10:59 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 23:10:59 2018 +0000"
      },
      "message": "Merge \"Remove unnecessary references to libunwind.\""
    },
    {
      "commit": "0aa1e7010610c7acb9f69da6dd5360570e218b9d",
      "tree": "f3b88ab8699ce01d7fcb013b29d712f9c7863ebf",
      "parents": [
        "28c9c4764810fb7d92ebc78824f772529e7f8989"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 13:52:20 2018 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Thu May 03 13:52:20 2018 -0700"
      },
      "message": "Remove unnecessary references to libunwind.\n\nBug: 79209464\n\nTest: Builds.\nChange-Id: Ie8b0720da683ab8d40cba46690ed44c5c53efe88\n"
    },
    {
      "commit": "28c9c4764810fb7d92ebc78824f772529e7f8989",
      "tree": "a4b7f9a8d6252fe4f94287edb5340d0f63997886",
      "parents": [
        "8bf3b263d30415ae2d6ddfea9e2178ee760f2da9",
        "a8360cd6b858906f20558552f7bf3b3876c72ec4"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu May 03 18:49:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 18:49:04 2018 +0000"
      },
      "message": "Merge \"Perform rudimentary check on graph size for no-change assertions.\""
    },
    {
      "commit": "e2b4195e3a562eb60a38c2beeba8ba97c689aeed",
      "tree": "aaddec99a0a95d735f302ee56ee48e0cb0c167be",
      "parents": [
        "4931fc2734dd3173a98fe02631837e54ec950762"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed Apr 25 09:09:28 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Thu May 03 17:48:50 2018 +0100"
      },
      "message": "[veridex] Reflection detection improvements.\n\n- Handle invoke range instructions.\n- Implement parameter substitution.\n\nbug: 77513322\nTest: m\n\n(cherry picked from commit 5de2ff26d448629082ffe3058a0a76fc38362daa)\n\nChange-Id: Ib7bb1b3ff9b28f0ecfc8b338ef4cf08e5c9b159f\n"
    },
    {
      "commit": "a8360cd6b858906f20558552f7bf3b3876c72ec4",
      "tree": "357c6916cb832b9a27ff6bbcf2d9344fb818e569",
      "parents": [
        "d637fdac0ea396780b12052c7ab9de61744bcd4b"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed May 02 16:07:51 2018 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Thu May 03 09:26:25 2018 -0700"
      },
      "message": "Perform rudimentary check on graph size for no-change assertions.\n\nRationale:\nThis will find blatant violations of asserting a no-change\npass change if the graph size changed nevertheless.\n\nBug: 78171933\n\nTest: test-art-host,target\nChange-Id: I07b38e71c75dd6f728246d096976c8333b363329\n"
    },
    {
      "commit": "8bf3b263d30415ae2d6ddfea9e2178ee760f2da9",
      "tree": "97296e14299d14aa9b280864ec8c96b4a9070672",
      "parents": [
        "4931fc2734dd3173a98fe02631837e54ec950762",
        "a92f51bc0cb959a9c54d998ef0e7a08d740df8db"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Thu May 03 15:31:13 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 15:31:13 2018 +0000"
      },
      "message": "Merge \"ART: Follow-up changes to DexFileVerifier\""
    },
    {
      "commit": "4931fc2734dd3173a98fe02631837e54ec950762",
      "tree": "300382e9d2e44a5946cdba84b30b73e8dc5dac10",
      "parents": [
        "53d235642a1aef151a46eb946cc82c3ae1535328",
        "86bb96fd68403e93520d1aa757fcbf1048a21d26"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 03 13:35:54 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 13:35:54 2018 +0000"
      },
      "message": "Merge \"ART: Skip RI test of 716-jli-jit-samples\""
    },
    {
      "commit": "86bb96fd68403e93520d1aa757fcbf1048a21d26",
      "tree": "300382e9d2e44a5946cdba84b30b73e8dc5dac10",
      "parents": [
        "53d235642a1aef151a46eb946cc82c3ae1535328"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 03 14:07:26 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 03 14:07:26 2018 +0100"
      },
      "message": "ART: Skip RI test of 716-jli-jit-samples\n\nTest: art/test.py --host --jvm --64 -r -t 716\nBug: 78151261\nChange-Id: I0a6ee0016cf34a7aeceb048d4c25ccc1f5275f0f\n"
    },
    {
      "commit": "53d235642a1aef151a46eb946cc82c3ae1535328",
      "tree": "93fb61a2cf601345f46587729ebf05e65117f8eb",
      "parents": [
        "d637fdac0ea396780b12052c7ab9de61744bcd4b",
        "52f5a1fb829bd238fdd3c12da66b2b5de92c6ad1"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 03 12:30:39 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 03 12:30:39 2018 +0000"
      },
      "message": "Merge \"ART: No JIT for native MethodHandle/VarHandle methods\""
    },
    {
      "commit": "52f5a1fb829bd238fdd3c12da66b2b5de92c6ad1",
      "tree": "6c47075ff29f2d23829a5dae92fe9711be27653e",
      "parents": [
        "3d995b55a9c0a3ba204869e2093c1433fd2d42d9"
      ],
      "author": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Wed May 02 11:05:44 2018 +0100"
      },
      "committer": {
        "name": "Orion Hodson",
        "email": "oth@google.com",
        "time": "Thu May 03 11:50:11 2018 +0100"
      },
      "message": "ART: No JIT for native MethodHandle/VarHandle methods\n\nMethodHandle invocations can record JIT samples. This can lead to\ntransitioning the JNI stubs for MH.invoke and MH.invokeExact from\nAOT compiled to JIT compiled and then to generic when there is a JIT\ncode cache collection. The transitions and differences in stack frame\nrepresentations can cause a crash during stack walking.\n\nThis only affects native invocations of handles which we do to raise\nUnsuppportedOperationExceptions when invoked reflectively. Not\nperformance critical and not likely to be exercised in real code, but\nleads to flakes in gcstress testing of 956-methodhandles.\n\nBug: 78151261\nTest: art/test/run-test --host --64 --compact-dex-level fast --jit --no-relocate --pic-test 956\nTest: art/test.py --host -r -t 716\nChange-Id: Ie3fdbcfc4decb12814290bcce8d25c5e2fde87f1\n"
    },
    {
      "commit": "a92f51bc0cb959a9c54d998ef0e7a08d740df8db",
      "tree": "3ec1a51ab807a735f0994a3e64f6429e1be9aea4",
      "parents": [
        "d637fdac0ea396780b12052c7ab9de61744bcd4b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Tue May 01 11:50:33 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed May 02 19:40:19 2018 -0700"
      },
      "message": "ART: Follow-up changes to DexFileVerifier\n\nAddress comments.\n\nBug: 78568168\nTest: m test-art-host\nChange-Id: I9649f4342986995bf2aeb83e89c1ea74a9d9b74b\n"
    },
    {
      "commit": "d637fdac0ea396780b12052c7ab9de61744bcd4b",
      "tree": "140b1de8756a2eca908b817325c6664aadd62e42",
      "parents": [
        "e1b445b112ec83fea9b1760cdfe6d0e185607b0d",
        "d5f8de8bc61160bb2cecdcc0f5aa54d151b6176a"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Wed May 02 17:20:35 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 17:20:35 2018 +0000"
      },
      "message": "Merge \"Add CommonArtTest\""
    },
    {
      "commit": "e1b445b112ec83fea9b1760cdfe6d0e185607b0d",
      "tree": "07fd0c81d1dfde82c2b3b476c2ccf3758b6cae4b",
      "parents": [
        "a36cbaaad9de58bda29bc74bde0dbb4ed389f4cc",
        "f3a163cc87ef4600d78837389b72795014533780"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Wed May 02 15:27:45 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 15:27:45 2018 +0000"
      },
      "message": "Merge \"Increase logging in run-test 080-oom-throw to debug OOME-in-OOME issues.\""
    },
    {
      "commit": "a36cbaaad9de58bda29bc74bde0dbb4ed389f4cc",
      "tree": "3f8ba2a15934acfe57ee213ec74ba68d4d78842c",
      "parents": [
        "b0be495b8678b95e95651cf55cb417934b12ee08",
        "a655575c393f88219fa559d3d2e71ad905675621"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 02 13:23:37 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 13:23:37 2018 +0000"
      },
      "message": "Merge \"Don\u0027t run ICU tests on gcstress.\""
    },
    {
      "commit": "b0be495b8678b95e95651cf55cb417934b12ee08",
      "tree": "c491385c3940baeffaa24b26b768ed82fbcceb07",
      "parents": [
        "3d995b55a9c0a3ba204869e2093c1433fd2d42d9",
        "a1b1b1bd56c609cea90330dd39ba375f3ec081c7"
      ],
      "author": {
        "name": "Rico Wind",
        "email": "ricow@google.com",
        "time": "Wed May 02 10:17:52 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 10:17:52 2018 +0000"
      },
      "message": "Merge \"Add a few cases of non compatiple d8 tests\""
    },
    {
      "commit": "a655575c393f88219fa559d3d2e71ad905675621",
      "tree": "de9fe7938ef0026d6622f47ab99fbeb0de48d524",
      "parents": [
        "3d995b55a9c0a3ba204869e2093c1433fd2d42d9"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 02 10:39:09 2018 +0100"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Wed May 02 11:07:38 2018 +0100"
      },
      "message": "Don\u0027t run ICU tests on gcstress.\n\nAlso fix logic around boolean checks (thanks bash).\n\nbug: 78228743\nTest: run-libcore-tests\nChange-Id: I2fc2310e9328c0f4b24a281599d51a46336369a9\n"
    },
    {
      "commit": "3d995b55a9c0a3ba204869e2093c1433fd2d42d9",
      "tree": "33d17cc54f521e82ae423c9a441fed896639df90",
      "parents": [
        "9417b6b81393253a56b1b9bb4c7d8a2a2966707e",
        "3f08e9bb0dfbe9a51e1b378ae20a9338358349eb"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Wed May 02 00:22:03 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 02 00:22:03 2018 +0000"
      },
      "message": "Merge \"Remove some SIMD recognition code.\""
    },
    {
      "commit": "d5f8de8bc61160bb2cecdcc0f5aa54d151b6176a",
      "tree": "efecd6d3dffd3a1d768b87a111d9e60335d9108c",
      "parents": [
        "9417b6b81393253a56b1b9bb4c7d8a2a2966707e"
      ],
      "author": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Fri Apr 27 14:12:03 2018 -0700"
      },
      "committer": {
        "name": "David Sehr",
        "email": "sehr@google.com",
        "time": "Tue May 01 16:23:42 2018 -0700"
      },
      "message": "Add CommonArtTest\n\nAdd a test framework that does not start up a Runtime object.\n\nBug: 78651010\nTest: make -j 40 test-art-host\nChange-Id: I6c8af384af5fe1289c6cf137635e94934ac3795d\n"
    },
    {
      "commit": "3f08e9bb0dfbe9a51e1b378ae20a9338358349eb",
      "tree": "315a297945abd28e1f6375095c065ab40691fdde",
      "parents": [
        "cf659ae8b91e4ea84ffb4adb294eac5759d6666f"
      ],
      "author": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 01 13:42:03 2018 -0700"
      },
      "committer": {
        "name": "Aart Bik",
        "email": "ajcbik@google.com",
        "time": "Tue May 01 14:14:53 2018 -0700"
      },
      "message": "Remove some SIMD recognition code.\n\nTest: : test-art-host,target\n\nChange-Id: I7f00315c61ed99723236283bc39a4c7fb279df47\n"
    },
    {
      "commit": "9417b6b81393253a56b1b9bb4c7d8a2a2966707e",
      "tree": "e91a1585e90bb92ee125a9380ee3ae14fc934412",
      "parents": [
        "d7a8ab20fcc3ec887a3c484c2cbbd04c8e459333",
        "e1d644da688d0863b1a0ee70f9db855e9d10d5f6"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 01 18:25:41 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 01 18:25:41 2018 +0000"
      },
      "message": "Merge changes If8183bb2,Ie719109e\n\n* changes:\n  Always enable dead object poisoning in unevacuated regions.\n  Always enable cyclic region allocation in ART\u0027s region space.\n"
    },
    {
      "commit": "d7a8ab20fcc3ec887a3c484c2cbbd04c8e459333",
      "tree": "132c57cc9f5d45fdde43bb8fde286620ca403ee4",
      "parents": [
        "cf659ae8b91e4ea84ffb4adb294eac5759d6666f",
        "0e4e814e09bea5c3c169c73122e8ebd53a8d04f4"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Tue May 01 18:05:17 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 01 18:05:17 2018 +0000"
      },
      "message": "Merge \"ART: Find and cache indices for method names\""
    },
    {
      "commit": "f3a163cc87ef4600d78837389b72795014533780",
      "tree": "f9bcf5a8b1fcf7cc05f229cbc8f495135ad33567",
      "parents": [
        "cf659ae8b91e4ea84ffb4adb294eac5759d6666f"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 01 18:59:14 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 01 18:59:14 2018 +0100"
      },
      "message": "Increase logging in run-test 080-oom-throw to debug OOME-in-OOME issues.\n\nEnsure the stack trace dumped before setting exception\n\n  \"java.lang.OutOfMemoryError: OutOfMemoryError thrown while trying\n  to throw OutOfMemoryError; no stack trace available\"\n\nis displayed, by lowering the minimum log severity to WARNING for this\ntest.\n\nTest: art/test/testrunner/testrunner.py --host -t 080-oom-throw\nBug: 77567088\nChange-Id: I3d3ba310e672c9c56310653528f1c1b309a4bf55\n"
    },
    {
      "commit": "a1b1b1bd56c609cea90330dd39ba375f3ec081c7",
      "tree": "a9180710d5e6f035f0091304cc9db3817c36e46c",
      "parents": [
        "b7f680727032a6fa82f166c2c268db8eb0f3b570"
      ],
      "author": {
        "name": "Rico Wind",
        "email": "ricow@google.com",
        "time": "Tue May 01 15:50:27 2018 +0200"
      },
      "committer": {
        "name": "Rico Wind",
        "email": "ricow@google.com",
        "time": "Tue May 01 16:51:27 2018 +0000"
      },
      "message": "Add a few cases of non compatiple d8 tests\n\nUnblock rolling r8\nBug: b/65168732\nTest: Test still work with dx\nChange-Id: I54c805e205c550215a6dc3f05ec5f83a753c054b\n"
    },
    {
      "commit": "cf659ae8b91e4ea84ffb4adb294eac5759d6666f",
      "tree": "d977607f54b588e011c089868e1cf957e86e0635",
      "parents": [
        "b7f680727032a6fa82f166c2c268db8eb0f3b570",
        "b52dbb7f99e9a51266c24b91a1dfd8bf469630f8"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 01 15:27:56 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 01 15:27:56 2018 +0000"
      },
      "message": "Merge \"Build, sync and use debuggerd and su in ART\u0027s Android root testing dir.\""
    },
    {
      "commit": "b52dbb7f99e9a51266c24b91a1dfd8bf469630f8",
      "tree": "d977607f54b588e011c089868e1cf957e86e0635",
      "parents": [
        "b7f680727032a6fa82f166c2c268db8eb0f3b570"
      ],
      "author": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 01 14:03:45 2018 +0100"
      },
      "committer": {
        "name": "Roland Levillain",
        "email": "rpl@google.com",
        "time": "Tue May 01 14:49:02 2018 +0100"
      },
      "message": "Build, sync and use debuggerd and su in ART\u0027s Android root testing dir.\n\nBinaries /system/bin/debuggerd and /system/xbin/su are used by script\ntools/run-jdwp-tests.sh as part of the process dumping command when\ntesting on device.\n\nNote that this dumping command won\u0027t work on ART Buildbot devices\nrunning Android N regardless, as the debuggerd protocol changed in an\nincompatible way in Android O.\n\nTest: tools/run-jdwp-tests.sh --mode\u003ddevice\nChange-Id: I402918ca0879583a1beb2dc71dc1d81516607ed2\n"
    },
    {
      "commit": "b7f680727032a6fa82f166c2c268db8eb0f3b570",
      "tree": "a9b6c21150828a3f8fc1c04606f4517c747224c8",
      "parents": [
        "f094ac2bba420fea559bcc180e1a5f10df8da410",
        "9fecf30ba0577511276d8a4a3e15ff45ba2a2462"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon Apr 30 22:48:12 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 30 22:48:12 2018 +0000"
      },
      "message": "Merge \"Remove changes to 001-HelloWorld\""
    },
    {
      "commit": "f094ac2bba420fea559bcc180e1a5f10df8da410",
      "tree": "0170deb028d73c82a6e9500b3c0b2c3872a85cba",
      "parents": [
        "302dda50f7e3ff91f6afb2fca48c8ae26ce4f75c",
        "20da73363c6b1208b7bec2610534c036eca51946"
      ],
      "author": {
        "name": "android-build-prod (mdb)",
        "email": "android-build-team-robot@google.com",
        "time": "Mon Apr 30 21:42:44 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 30 21:42:44 2018 +0000"
      },
      "message": "Merge changes I4a084367,Id4636dc1\n\n* changes:\n  Remove skip of test 904 for JIT\n  Limit test 904 to examining test threads\n"
    },
    {
      "commit": "9fecf30ba0577511276d8a4a3e15ff45ba2a2462",
      "tree": "fcf80bd9bc4912f2aa4806e5420dfde96757142b",
      "parents": [
        "2f8279eab734f2e701625e283a0c5776ecbea1bc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 30 14:13:22 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 30 21:17:40 2018 +0000"
      },
      "message": "Remove changes to 001-HelloWorld\n\nThe test 001-HelloWorld was turned into a copy of test 170 a while\nago. This returns test 001-HelloWorld to its original state as a pure\nhello-world program.\n\nPartial revert of commit 976b298a4e\n\nTest: ./test.py --host -j50\nChange-Id: I20b021ca54655cc84f4fd27b2d145c3054bbb8f5\n"
    },
    {
      "commit": "0e4e814e09bea5c3c169c73122e8ebd53a8d04f4",
      "tree": "ba56aa1c181c59eef8c1090e89fcbe14ee2988fc",
      "parents": [
        "56189d23563610a63064b9ef97e5851f21bcadc8"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Apr 25 12:19:34 2018 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Apr 30 13:57:32 2018 -0700"
      },
      "message": "ART: Find and cache indices for method names\n\nCache the range of string indices starting with \u0027\u003c,\u0027 especially the\nwell-defined \"\u003cclinit\u003e\" and \"\u003cinit\u003e,\" to optimize the constructor-flags\ncheck.\n\nSaves about .2% of instructions.\n\nBug: 78568168\nTest: m test-art-host\nChange-Id: I9ed26bb0382a169d945bcec4067c0166c200e227\n"
    },
    {
      "commit": "20da73363c6b1208b7bec2610534c036eca51946",
      "tree": "05ae0b1ab4c4811a5de2679bf9c3c4a50402f6e6",
      "parents": [
        "d4102bafc1037007ac4cdeef9b215ca1bef6831f"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 30 12:55:21 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 30 20:23:59 2018 +0000"
      },
      "message": "Remove skip of test 904 for JIT\n\nTest appears to pass consistently. Unable to find reason it was\nskipped initially.\n\nTest: ./test.py --host -j50\nChange-Id: I4a084367c1297b4da6e40f805dbaf6afc70c1e20\n"
    },
    {
      "commit": "d4102bafc1037007ac4cdeef9b215ca1bef6831f",
      "tree": "a375a66dc65af275196f0116c2dae1a50abff256",
      "parents": [
        "2f8279eab734f2e701625e283a0c5776ecbea1bc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 30 12:47:22 2018 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Apr 30 20:23:51 2018 +0000"
      },
      "message": "Limit test 904 to examining test threads\n\nTest 904 could flake due to capturing allocations from unrelated\nandroid system threads. To fix this we filter the allocations we have\ncollected for those from threads created for/running the test.\n\nTest: ./test.py --host -j50\nChange-Id: Id4636dc153ab5a8208cd5f7bb255e29939dc2b02\n"
    },
    {
      "commit": "302dda50f7e3ff91f6afb2fca48c8ae26ce4f75c",
      "tree": "d74c89c28fe9249d7579f8ecd607c2fe2daffb47",
      "parents": [
        "56189d23563610a63064b9ef97e5851f21bcadc8",
        "1bfe4bd4c444017cf40ccadcfbf20cb0ceb37880"
      ],
      "author": {
        "name": "Calin Juravle",
        "email": "calin@google.com",
        "time": "Mon Apr 30 18:29:20 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 30 18:29:20 2018 +0000"
      },
      "message": "Merge \"Do not verify apks when processing profiles\""
    }
  ],
  "next": "56189d23563610a63064b9ef97e5851f21bcadc8"
}
