)]}'
{
  "log": [
    {
      "commit": "037d282cd1fc201601ac52dcfe0f1a4d97ca3790",
      "tree": "da6a1d61357cd09c4131501031de691491bcdb2a",
      "parents": [
        "6e71c66b35f6a96908e3d371316cba15dcb75d1f"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Thu Nov 19 00:20:04 2020 +0000"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Mon Nov 23 19:02:00 2020 +0000"
      },
      "message": "Add compat framework logging to ART\n\nLog first call for every change id in ART to logcat.\n\nTest: manual\nBug: 153061480\n\nChange-Id: I37ff5b88572478ae6c24b0b7dec2020da03b2172\n"
    },
    {
      "commit": "fc12a6cb415b2eacee0459fd170490a407c2548a",
      "tree": "f3b8508544e7320635146d0458e612e4b6f735d9",
      "parents": [
        "0f5784886faf0281a7b06eba35105ee68f1e5a00"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Wed Jul 29 19:52:34 2020 +0100"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Mon Aug 10 12:27:13 2020 +0000"
      },
      "message": "Rename ApiList::Value enums\n\nUse a more inclusive terminology for the API lists. This change focuses\nspecifically on the ApiList::Value enum values. The string equivalents\nwill be changed separately, as they have multiple extra dependencies.\n\nBug: 162326106\nTest: m\nTest: m test-art-host-gtest-art_hiddenapi_tests\nTest: art/tools/run-gtests.sh\n\nChange-Id: I1dccf59ecc9e08b60dbd1bfed6ce438b5ce081d0\n"
    },
    {
      "commit": "7992467de2dd3ea6eec1cd5cf8825d025fecd247",
      "tree": "5205f878a120e1f8233f5d88f0a93e328f67c96e",
      "parents": [
        "e3e187f29fa4025e30c5a43decb2b6f6c584d59c"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Thu Jul 30 14:23:00 2020 +0100"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Mon Aug 03 14:10:52 2020 +0000"
      },
      "message": "Rename meta-reflection changeid\n\nUse a more inclusive terminology to describe the meta-reflection\npreventing changeid.\n\nTest: art/test/testrunner/testrunner.py --target -t674-hiddenapi\nBug: 162318095\nChange-Id: I4fde31aa41a9cf506c509b223b9f28d9da11cf8a\n"
    },
    {
      "commit": "6442eaf8b21c85d60648f7a7498a6aeb299af861",
      "tree": "9a0fc7a9484e22e341b765b97adb9c517f78ddca",
      "parents": [
        "e30457c0b52caba839b21a03af56200df7a975e2"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Wed Jan 08 16:55:56 2020 +0000"
      },
      "committer": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Jan 17 15:59:09 2020 +0000"
      },
      "message": "Harden hidden api checks.\n\nAlso walk past j.l.r in stackwalk for Hidden API. This is a fix for an\nasan test failure (691-hiddenapi-proxy) introduced in https://r.android.com/1208005.\nInstead of always walking past j.l.r during the stackwalk, this CL adds an\nexception for j.l.r.Proxy.\n\nBug: 142365358\nTest: art/test/testrunner/testrunner.py --target --64 -t674-hiddenapi\nTest: art/test/testrunner/run_build_test_target.py -j110 art-asan\nChange-Id: I98dd46d7070dd2dd4318398d2a5d2ae4ece94015\n"
    },
    {
      "commit": "9406c43b2de9b94b6d70f82474840eccd7699dc7",
      "tree": "5bc44e726bf2a8d0a6e37279056c3f226154afc6",
      "parents": [
        "08d064fb6d02006730710a683e84a4cc54229c67"
      ],
      "author": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Tue Jan 14 15:40:09 2020 +0000"
      },
      "committer": {
        "name": "Lokesh Gidra",
        "email": "lokeshgidra@google.com",
        "time": "Tue Jan 14 21:37:43 2020 +0000"
      },
      "message": "Revert \"Harden hidden api checks.\"\n\nRevert submission 1203343-hidden-api-check-hardening\n\nReason for revert: art-asan target failure\nReverted Changes:\nI5af9f79f5: Add change id for hidden api check hardening\nIfc8d39ba2: Harden hidden api checks.\n\nChange-Id: Ifb824ff00cb78f03cd388c56dd7411f5c51bb531\n"
    },
    {
      "commit": "3bf51634271a5cb25eadc3ffc092233663253a41",
      "tree": "e96e45d7ace51f97468ecdac21f754c59eee4ce1",
      "parents": [
        "135b5c8fe69b27c5059a9f042c394a9d438c9788"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Wed Jan 08 16:55:56 2020 +0000"
      },
      "committer": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Tue Jan 14 14:04:46 2020 +0000"
      },
      "message": "Harden hidden api checks.\n\nAlso walk past j.l.r in stackwalk for Hidden API.\n\nBug: 142365358\nTest: art/test/testrunner/testrunner.py --target --64 -t674-hiddenapi\nChange-Id: Ifc8d39ba23808216bbb8dd21e3262d330f2c87f1\n"
    },
    {
      "commit": "0a19e212e56fc6fe2809b58072ddcf4acfdc568d",
      "tree": "6e5ef4a1bd1d08917ada2a49d5f807cfbc9a4e1a",
      "parents": [
        "42c52f53b3c85b5e3c984bca8eaec2e03893dd2e"
      ],
      "author": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Wed Nov 27 14:35:24 2019 -0800"
      },
      "committer": {
        "name": "Mathieu Chartier",
        "email": "mathieuc@google.com",
        "time": "Mon Dec 02 18:56:46 2019 +0000"
      },
      "message": "Add null check in AppendToBootClassPath\n\nAim to diagnose test 1002 that crashed once due to having a null\nelement in ClassLinker::boot_class_path_.\n\nBug: 144895912\nTest: test/testrunner/test.py --host -j32\n\nChange-Id: Ibc072dbc1bd48cfde0ad5d3b56ebdc348d441085\n"
    },
    {
      "commit": "74d488494187395d9d305159f54fc679e8219e5d",
      "tree": "f0f4d8b94d8daf055a918c13a5c3c7117e025777",
      "parents": [
        "fbfba6a7d4b8892a2ce2de006ff3a767163ed05b"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 22 16:06:25 2019 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Jan 22 16:06:25 2019 +0000"
      },
      "message": "Fix 674-hiddenapi run-test on AOSP host\n\nThe test would call VMRuntime.setHiddenApiExemptions() to test\nwhitelisting, but this API is now blacklisted. Add a small native helper\nwhich achieves the same goal to fix the test.\n\nBug: 123150330\nTest: art/test.py -b --host -r -t 674-hiddenapi\nChange-Id: I03d6941507c273b53a25d70630807490a608fb59\n"
    },
    {
      "commit": "e7681823f8259c8c04ce0c361746216606784e69",
      "tree": "8bd248fc6be126d7d4e55bb4072ed24b2851ebbd",
      "parents": [
        "90faceb71e25748172ba6369209f8a2a66735394"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 14 16:25:33 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Mon Jan 21 10:22:27 2019 +0000"
      },
      "message": "hiddenapi: Print warnings for @CorePlatformApi violations\n\nWhen accessing a method/field at runtime, determine the context of both\nthe caller and the callee, and add new logic for the case\n\"platform -\u003e core-platform\" which used to be always allowed.\n\nIf the callee is marked with kAccCorePlatformApi, access is allowed.\nIf not, a warning is printed into logcat.\n\nBug: 119068555\nTest: 674-hiddenapi\nChange-Id: I64839596bf6eb06d7a169fd59b18fd82c140ce6e\n"
    },
    {
      "commit": "dcfa89bfc06a6c211bbb64fa81313eaf6454ab67",
      "tree": "4aaf6da88861029e387525957bf68796cf95648c",
      "parents": [
        "fd667d4165aefe51010e4fe3bd81b820ed9884ef"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 31 11:04:10 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 22 12:49:26 2018 +0000"
      },
      "message": "Rename and reorganize hiddenapi::ApiList\n\nChange values of ApiList flags to make them easier to extend in the\nfuture and unify naming across all components. Light greylist is now\njust \"Greylist\", dark greylist becomes \"GreylistMaxO\".\n\nNote that the version code in \"GreylistMaxO\" must also include any\nmaintenance releases, i.e. entries on \"GreylistMaxO\" are accessible\nto apps with targetSdkVersion\u003c\u003d27 (O MR1).\n\nTest: m, phone boots\nTest: m test-art\nChange-Id: I9622e0646eb265008a8bb2652270876ae95dac84\n"
    },
    {
      "commit": "2bb2fbd2879d0a6d9ebf7acff817079dde89b417",
      "tree": "d607aa6bfb2ea55fbfd875237b37c79f3cfed5f6",
      "parents": [
        "85865697ff9fabede3d64ff64cde72727c3fc4c1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Nov 13 18:24:26 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Create SdkVersion enum, migrate users to it\n\nCreates a new SdkVersion enum with integer codes of known\nAndroid SDK versions, together with helper functions for common\npredicates. Also converts target_sdk_version_ in Runtime to\nuint32_t and cleans up its uses.\n\nTest: m test-art\nChange-Id: Idc6e518c8675068bf952d0256686c88bb0eb833e\n"
    },
    {
      "commit": "85865697ff9fabede3d64ff64cde72727c3fc4c1",
      "tree": "0c67639c4c286149fa3f06f5f412683e39014790",
      "parents": [
        "b321ac28f726a7ed41f277382d85702ffdfbe00f"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 17:26:20 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Nov 16 11:11:20 2018 +0000"
      },
      "message": "Runtime flags only for fast/slow hiddenapi path\n\nWith more flags being supported in the dex file, stop copying all of\nthem into ArtField/ArtMethod access flags. Instead, store the\ninformation needed to figure out whether to enter the slow path and\nretrieve full access flags from dex or not.\n\nAt the moment, the only runtime flag is kAccPublicApi assigned to all\nclass members on the whitelist.\n\nThe CL also moves hardcoded API membership of intrinsics out of\nArtMethod and into hidden_api.h, and moves ArtMethod::SetIntrinsic\ninto the .cc file.\n\nTest: m test-art\nChange-Id: Ia1cc05060dbc22341768161dfd8697c6158e803a\n"
    },
    {
      "commit": "f50ac103426588d9f7c014ef2d2b9c766f8dc25e",
      "tree": "bac6537c3cd63cc382e24d9b94f0eb64f18ab0a4",
      "parents": [
        "b56e8353020acda1a8285daa11c69f57060cd015"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Oct 17 18:00:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Nov 14 16:49:40 2018 +0000"
      },
      "message": "Simplify hidden_api.h logic\n\nRefactor GetMemberAction to return a boolean whether access to a class\nmember should be denied. This also moves StrictMode consumer\nnotification into hidden_api.cc and removes notifications for toasts.\nTests are changed accordingly.\n\nTest: phone boots\nTest: m test-art\nMerged-In: I02902143de0ff91d402ba79c83f28226b1822a6f\nChange-Id: I02902143de0ff91d402ba79c83f28226b1822a6f\n(cherry picked from commit 51995f90adaa0e5047dee56d22f15e4225e70517)\n"
    },
    {
      "commit": "4b22b34c698db8aa59343d0a5af89fc737532bce",
      "tree": "985c0e28dcdf5a497737690b50d31c4eb7bbda85",
      "parents": [
        "9e53f5f19167848d043f91e6d20436e9b568b55a"
      ],
      "author": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 14:43:21 2018 -0700"
      },
      "committer": {
        "name": "Yi Kong",
        "email": "yikong@google.com",
        "time": "Thu Aug 02 14:43:21 2018 -0700"
      },
      "message": "Modernize codebase by replacing NULL with nullptr\n\nFixes -Wzero-as-null-pointer-constant warning.\n\nTest: m\nBug: 68236239\nChange-Id: Id869744db54b5b366454a5e13b467ac1f4df2845\n"
    },
    {
      "commit": "597d7f650b0656fcb3985b01f53284717b41e5cc",
      "tree": "59ba9853104427b19f2449ce547301764d22756b",
      "parents": [
        "753ce1bcf458ad6c6fbb41689901943d44e7738e"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Mar 22 11:36:47 2018 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Mar 23 11:43:35 2018 +0000"
      },
      "message": "More flexible API enforcement policy support.\n\nThis CL adds the ability to configure which banned API lists to enforce,\ndefined by new enum hiddenapi::ApiEnforcementPolicy. Currently, the policy\ncan be set at zygote fork time, but not at dex optimization time where\nblacklist enforcement is still assumed. As such, making the policy more\nstrict will not work as expected yet. This will be improved in a follow up\nCL.\n\nTest: art tests pass\nTest: Device boots\n\nBUG: 73337509\n\n(cherry-picked from commit 159f596eec01adbb5a1c9654402c137cdb943131)\n\nChange-Id: I6c319bb8a3000cb1d3c4693b4fb196e749c36d96\nMerged-In: I33f9afce628a86727e400052f4d5979d3536da8c\n"
    },
    {
      "commit": "92265222f1e1df56ee6d106493b1bd2be65d5ce9",
      "tree": "d73a4f9708acbedb1d464c83c22756ac0eb68799",
      "parents": [
        "e5bf41acab7cc5a798a4d19425493a4af8f20436"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Feb 02 11:21:40 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Feb 03 02:11:11 2018 +0000"
      },
      "message": "Only set UI warning on hidden API dark greylist\n\nThe framework might show a toast notification on access to greylisted\nhidden APIs. Only show this warning on dark greylist so as to not spam\nearly testers.\n\nBug: 64382372\nTest: make\nChange-Id: I8b5f7b4938e0f238c513e37d7db06856b966802f\n"
    },
    {
      "commit": "ee7d2fd16d47b54d7fb5b9d5ec772fbc315faf4b",
      "tree": "844ed2998f78723aa7909ce0a7b19995c34f0bd9",
      "parents": [
        "5a61bb7969347ffe8e0bf4f4dff841cc6c21ed85"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Jan 20 17:25:23 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 25 10:40:56 2018 +0000"
      },
      "message": "Start warning on hidden API greylist\n\nInsert checks into reflection, JNI and the verifier to print\na warning when greylisted methods are invoked and fields accessed.\nWe do this on actual access, because reflection allows to list\nall methods/fields and simply listing a greylisted member would\nprint too many false positives.\n\nIssuing a warning also sets a boolean flag in Runtime. This will\nbe made accessible through VMRuntime to the framework which will\nissue a Toast on Activity start.\n\nThe change was tested with internal microbenchmarks of reflection\nand those flagged one issue. Microbenchmark invoking a field getter\nhas regressed by 35%. We will profile this benchmark in detail and\nconsider options for improvement. Bug b/72482474 was created to track\nprogress.\n\nTest: art/test.py -b -r -t 674-hiddenapi\nBug: 64382372\nBug: 72482474\nChange-Id: I323244935e9091a2f8d012385cefaac6b1fe3777\n"
    },
    {
      "commit": "5a61bb7969347ffe8e0bf4f4dff841cc6c21ed85",
      "tree": "44c266c97576dcbdc931cf94d81774614a2c762b",
      "parents": [
        "d02784e17c20c91a50dcb10522351f4937e250ff"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Jan 19 16:59:46 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 25 10:11:11 2018 +0000"
      },
      "message": "Start enforcing hidden API blacklist\n\nInsert checks into reflection, JNI and Class::CanAccessMember to\nmake blacklisted hidden APIs undiscoverable.\n\nThe change was tested with internal microbenchmarks of reflection\nand those showed no measurable performance impact.\n\nTest: art/test.py -b -r -t 674-hiddenapi\nBug: 64382372\nChange-Id: I9e39804b837ae9ffeba926f2a5b1e8e9986c472b\n"
    },
    {
      "commit": "11b67b201adb173d5f6f1b7a3fd337fda91e200f",
      "tree": "90870c2ec271002ab36cb57484c185076e424f3a",
      "parents": [
        "8714435022757567aa078601f54244b8339bbed1"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Jan 18 16:41:40 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed Jan 24 14:21:50 2018 +0000"
      },
      "message": "Set up a test for hidden API enforcement\n\nSubmitting the test first for easier review. The expected outcome\nis that all currently class members are discoverable and accessible.\nFuture CLs will implement the enforcement and change the expected\noutcome.\n\nThe test itself has two JARs - parent declares classes and child\ntries to access them using reflection, JNI and static linking.\nThe test driver (\"Main\" class) loads these JARs as follows:\n(a) both with class loaders\n(b) parent in boot class path, child with class loader\n(c) both in boot class path\n\nIn (a), there should be no enforcement as the JAR does not have\nhidden API access flags (would not load otherwise). In situation(b),\nchild should only be allowed to access parent\u0027s public, non-hidden\nmembers. And in (c), parent contains hidden API access flags but\nchild is exempt from access checks.\n\nBug: 64382372\nTest: art/test.py -b -r -t 674-hiddenapi\nChange-Id: I19f5f7c30c0c7913703209817d36006b161c6778\n"
    }
  ]
}
