)]}'
{
  "log": [
    {
      "commit": "16167331d31fc560188b4eaacf7f61fbb1dbf810",
      "tree": "bc725808fa6c7f63eafac51c4bb602d8bb31e874",
      "parents": [
        "7507728a6c942ae34e73d7a59f141cca574a1cae"
      ],
      "author": {
        "name": "Owner Cleanup Bot",
        "email": "swarming-tasks@owners-cleanup-prod.google.com.iam.gserviceaccount.com",
        "time": "Wed Aug 09 15:03:58 2023 +0000"
      },
      "committer": {
        "name": "Owner Cleanup Bot",
        "email": "swarming-tasks@owners-cleanup-prod.google.com.iam.gserviceaccount.com",
        "time": "Wed Aug 09 15:04:02 2023 +0000"
      },
      "message": "Remove andreionea@google.com from tools/hiddenapi/OWNERS\n\nThis suggested change is automatically generated based on group\nmemberships and affiliations.\nIf this change is unnecessary or in error, vote CR -1 and the bot\nwill abandon it. Vote CR +1/2 to approve this change.\n\nSee the owner\u0027s recent activity for context:\nhttps://android-review.googlesource.com/q/andreionea@google.com\n\nTo report an issue, file a bug in the Infra\u003eCodereview component.\n\nChange-Id: I2db3f3b47dbd95d5200cce493883a607bded0b54\n"
    },
    {
      "commit": "738f919418893e5720ef89bb454e9ca60eb934c4",
      "tree": "36e575abefcac22c878e408a1d2b246674e33564",
      "parents": [
        "3fbec7cf7799ed548dbc77b2459614f494178de7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 14 13:36:53 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 15 10:45:39 2021 +0100"
      },
      "message": "Move hiddenapi sort preupload tools to tools/platform-compat\n\nBug: 179354495\nTest: try and upload changes to hiddenapi flag files\nChange-Id: Iedc21893bbc62adaaca4de353d022e77fc70ace2\n"
    },
    {
      "commit": "11972fd43164415c60a98dd3c0a351decc5a6196",
      "tree": "d78710b6ccfe373ff4e9f0d6137aa1930729a434",
      "parents": [
        "afb6c9ff987dc9f1035a241038ba0278a9017f29"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 14 14:09:04 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 14 14:42:15 2021 +0100"
      },
      "message": "Generalize tools/hiddenapi/checksorted_sha.sh\n\nStops it being specific to frameworks/base. This change works because\n$2 is $(REPO_ROOT) and $(REPO_ROOT)/frameworks/base is the same as $PWD\nwhen this script is used in the frameworks/base repo.\n\nAlso removes boot/ from the path that identifies hidden API flag files.\nThis keeps the directory structure needed in the repositories into\nwhich hidden API flag files will be moved simple by removing the need\nto have a boot/ directory. The hiddenapi/ directory is required as the\nfiles need their own separate OWNERS file.\n\nA follow up change will move this file into tools/platform-compat to\nallow it to be used by other repos.\n\nBug: 177892522\nTest: try and upload changes to hiddenapi flag files\nChange-Id: Ifb3690e7c596249fda84eff82f5a53f0b1b6f991\n"
    },
    {
      "commit": "08c30bae75cd6ad735a478f5c071bb171d10430c",
      "tree": "d6e5c7ac212e42c8cfc556e0214ddc7f5861e87c",
      "parents": [
        "1ea3057847d298325ea7a31a314efed8200bc2c0"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 14 13:10:37 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 14 13:30:27 2021 +0100"
      },
      "message": "Remove com.android.i18n.phonenumbers from libcore packages\n\nThe com.android.i18n.phonenumbers is not used by any libcore code and\nis no longer managed by the libcore team.\n\nBug: 177892522\nTest: n/a\nChange-Id: Ib445e652746a8b9b42c6bee7d27a062d6b62a4ec\n"
    },
    {
      "commit": "f998f8b4273886b9c55c83d899fb8a28407b4144",
      "tree": "c99e5a1880bdb416a04b60847dad26275b59e468",
      "parents": [
        "dea9900796d5dece1d72e3742462ac9241f03d68"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 07 10:41:24 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 07 22:17:36 2021 +0100"
      },
      "message": "Update hiddenapi preupload checks to handle new location\n\nThe config/hiddenapi-*.txt files have moved so this change updates the\npreupload scripts to match their new location.\n\nTest: Modify the boot/hiddenapi/hiddenapi-*.txt files in various ways\n      to verify the scripts fail.\nChange-Id: I725458e809d9871b2c21bc4e18f62441aaa775a9\n"
    },
    {
      "commit": "ad7bf81d407699a4cb37a0552b90f62417d767eb",
      "tree": "fd993a96aa1be9d9b1b5d26d52e48bc3de28ddaa",
      "parents": [
        "7ca2087a38e37163cfb06cb3c32cbeb5c9bbbfcc"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 01 11:47:54 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 07 10:49:32 2021 +0100"
      },
      "message": "Improve hiddenapi exclude.sh script\n\nChanges:\n* Adds a missing package for libcore.\n* Splits the android.icu package out into a new I18N team.\n* Corrects and splits the conscrypt package out into a new CONSCRYPT\n  team.\n* Fixes some issues that arose due to multiple teams.\n* Reports multiple issues instead of stopping at the first one.\n* Only reports issues with additions/changes not removals.\n\nBug: 177892522\nTest: tools/hiddenapi/exclude.sh \u003cSHA\u003e\n      Ran it on a number of different commits with different\n      changes.\nChange-Id: I44740a28a56a26ee7fba3ed691d9da34f4effa8a\n"
    },
    {
      "commit": "7ca2087a38e37163cfb06cb3c32cbeb5c9bbbfcc",
      "tree": "7a59d65c98ce3201b0339cc475022b3e25db26d9",
      "parents": [
        "a40fbcd94cea6623c122e2657ac777947112c82d"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 07 10:37:14 2021 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Apr 07 10:49:02 2021 +0100"
      },
      "message": "Add OWNERS file to tools/hiddenapi\n\nBug: 179354495\nTest: m nothing\nChange-Id: I54159f3c32fc8a0a094243178315ca0d249b64cf\n"
    },
    {
      "commit": "72dad8a9d12b7e74c75a5d7b98229fcd216eb283",
      "tree": "85c6f5040aeeba42fde5b1385d4922050c1529d4",
      "parents": [
        "7151f51c5ae46ad081c78e5d0ac1b4700bbcf2bc"
      ],
      "author": {
        "name": "Yury Khmel",
        "email": "khmel@google.com",
        "time": "Tue Jul 14 23:44:46 2020 -0700"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 01 13:17:00 2021 +0100"
      },
      "message": "Fix presubmit for hidden api.\n\ngrep returns 1 for if nothing was found. This fails presubmit hook due\nto bash handling \"set -e\" Looks like grep not found is valid case.\nThis fixes this issue by bypassing grep exit code.\n\nTest: Locally\nBug: 161351699\nMerged-In: I39e926a348a0fb8f4040f86034affdb4204faac5\nChange-Id: I39e926a348a0fb8f4040f86034affdb4204faac5\n(cherry picked from commit e6a5253f1262acce5d8156867ffddc276a706c3d)\n"
    },
    {
      "commit": "5c1f668da325b9e438c634a9cde108cd157848fc",
      "tree": "3fe0e2fc5d2b27165a6f6b652049a2f5357b9deb",
      "parents": [
        "f16a93c5b27f3e3cd1538fdce7a5a0ae25792fc7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 08 18:08:26 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 10:43:57 2021 +0000"
      },
      "message": "Move hiddenapi tools used by build/soong into build/soong\n\nBug: 177317659\nTest: m nothing\n      build/soong/scripts/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: I72386e5343215864cd3af9c102fff16a5715b2ca\n"
    },
    {
      "commit": "f16a93c5b27f3e3cd1538fdce7a5a0ae25792fc7",
      "tree": "e77046dd0d6be085d38e40f6016913f7bca3d7a8",
      "parents": [
        "2019bc53c2a290410482ca84a75ce3b25c26b51a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 10:43:08 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 10:43:08 2021 +0000"
      },
      "message": "Fix lint errors in tools/hiddenapi\n\nBug: 177317659\nTest: tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: I7fe52319a80d929d43fdec913d2e7f155de96549\n"
    },
    {
      "commit": "2019bc53c2a290410482ca84a75ce3b25c26b51a",
      "tree": "9bef54e6a680444b4dd159a26691dfa83da3d577",
      "parents": [
        "c2d6240642852362dc6e255d6396b9065e79762c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 08 18:26:21 2021 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Feb 09 10:23:46 2021 +0000"
      },
      "message": "Fix generate_hiddenapi_lists_test.py\n\nThis change fixes the following tests which were broken by a previous\nchange (change id I5e3c2f8d14524d59dd65d26ce5196efcc15d6d8e):\n* test_assign\n* test_parse_and_merge_csv\n\nBug: 177317659\nTest: tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: If29c65794e258a3871269a0214a10980613542e6\n"
    },
    {
      "commit": "2bbe4710761b518f870500f072c8c0612c58dcaf",
      "tree": "c40121f213207cc7b7c104d1b742c90e8193293c",
      "parents": [
        "43db2533db33dc62f8938e602d767b5ba3e87f2a"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Oct 26 16:48:12 2020 +0000"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Oct 26 16:53:09 2020 +0000"
      },
      "message": "Clarify error message when signature in list.txt does not exist.\n\nThe previous error didn\u0027t really explain the problem from the users point\nof view.\n\nTest: modify hiddenapi-unsupported.txt and build\nChange-Id: I6f551343db84b20b32a963dccddf10cd08ea2be7\n"
    },
    {
      "commit": "43db2533db33dc62f8938e602d767b5ba3e87f2a",
      "tree": "89d505efeaaa9ec97dac35b2d83cd6f1f1d2ad18",
      "parents": [
        "95d5d13bb516ba441f9aa3aba888a18976265c7c"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Oct 20 15:20:30 2020 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Oct 22 15:26:35 2020 +0100"
      },
      "message": "Support adding custom tags to APIs.\n\nRefactor the argument parsing code to support more flexible options.\nNow, instead of:\n  --unsupported-ignore-conflicts apis.txt\n\nWe do:\n  --unsupported apis.txt --ignore-conflicts\n\nAnd similarly for --packages. Flags now come in groups, starting with\none of ALL_FLAGS and continuing to the next such flag. Any of\n--ignore-conflicts, --package or --tag X apply to the previous one of\nALL_FLAGS.\n\nAlso add the --tag flag used to tag APIs with a custom flag. This is\nused to tag removed APIs as such.\n\nTest: m -j out/soong/hiddenapi/hiddenapi-flags.csv\nBug: 171300342\nChange-Id: I59e6c365c46282f4489d71e7acac2ae43e5907d2\n"
    },
    {
      "commit": "5074e6045233bda6bb41fb2aa82011e253f07254",
      "tree": "0dd051fc3057210da94e96ef52897a7b30f40938",
      "parents": [
        "429b59c8a4b74ba603ea1ecf02feb016a95d0ef2"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Aug 07 19:06:41 2020 +0100"
      },
      "committer": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Aug 07 19:06:41 2020 +0100"
      },
      "message": "Drop deprecated API lists from csv merge script\n\nOnly support the new API list names.\n\nBug: 162500436\nTest: build and check hiddenapi-flags.csv\nChange-Id: I5e3c2f8d14524d59dd65d26ce5196efcc15d6d8e\n"
    },
    {
      "commit": "c57b3c2b13a1946536da2b028616c1e7b074daa9",
      "tree": "c59d2a904631be72ef8306a7b550551c2f4c001c",
      "parents": [
        "9e9ce9f9efa6d07450d976dfcbc1d666e51a11fc"
      ],
      "author": {
        "name": "Aleksei Kalinov",
        "email": "akalinov@google.com",
        "time": "Tue Jul 28 11:39:50 2020 +0000"
      },
      "committer": {
        "name": "Aleksei Kalinov",
        "email": "akalinov@google.com",
        "time": "Thu Jul 30 08:29:33 2020 +0000"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nThe binary uses flags to mean both command-line parameter names\nand the API names, used in files and internally in the class.\n\nInternal representation and command-line parameter names are updated to\nuse more inclusive language. However, the output file produced by\n`generate_csv` function still uses old flags. Format update in\nthe input/output files is out of scope for this change\nand will be updated in the follow-up changelist.\n\nSee https://source.android.com/setup/contribute/respectful-code for\nreference.\n\nBug: 161896447\n\nTest: python3 generate_hiddenapi_lists_test.py\n\nChange-Id: I36c85ce04b89ba3e4eee319f95511110d2c4374e\n"
    },
    {
      "commit": "54c2d606b33d44c50928e2d737d51868929dad6d",
      "tree": "8763cc045e859342e3a0c5cb48185cd3e153d1ec",
      "parents": [
        "f2853503c3b81fe27cf0fbfc6c1cf795ee4d9bb4"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed May 20 17:49:19 2020 +0100"
      },
      "committer": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed May 20 17:50:24 2020 +0100"
      },
      "message": "Add support for greylist-max-r signatures.\n\nBug: 156307884\nTest: m\nChange-Id: I66f8e48817d16bad5b306b91323bf0cdf42dbabe\n"
    },
    {
      "commit": "4ef7a1a594058c21e91fa79e9efe20a70d53c363",
      "tree": "aad6c4b0cd1bfccaf887c6e6ef9d182e6ae3578d",
      "parents": [
        "b1ad41b62ea590ad66aabfa118ce49d3b0637110"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Mon Jan 20 19:09:06 2020 +0000"
      },
      "committer": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed Feb 19 16:33:10 2020 +0000"
      },
      "message": "Use argparse in merge_csv.py.\n\n- Allow passing list of explicit fieldnames, instead of sorting header names.\n- Allow passing a single zip file with all CSV files to merge.\n\nBug: 145132366\nTest: diff -w out/soong/hiddenapi/hiddenapi-greylist.csv\nChange-Id: I7c6db369069452293c15eec290c635fb3879275d\n"
    },
    {
      "commit": "9430c17a6c86b228e2e6d3f2a19171eb3cec745d",
      "tree": "aab27b2b365ac91b03f408e6cf448626759bc49d",
      "parents": [
        "cd70c935b3df02709e1fdae7b4716057ba65131d"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Mon Jan 20 17:35:58 2020 +0000"
      },
      "committer": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed Jan 29 19:54:58 2020 +0000"
      },
      "message": "Use py3 features in merge_csv.py.\n\n- Use csv.QUOTE_MINIMAL strategy to only quote fields with special characters.\n- Open file as \u0027r\u0027, not \u0027rb\u0027.\n- Use \u0027unix\u0027 dialect for \u0027\\n\u0027 as line terminator, instead of \\r\\n.\n\nBug: 145132366\nTest: diff -w out/soong/hiddenapi/hiddenapi-greylist.csv\nChange-Id: I888f3219beee5b83e53f05589a90a05f93399fe3\n"
    },
    {
      "commit": "4effc4b64a1070279acc2e97c5c6f85b88dbd476",
      "tree": "a0546e65dc14d5eefc3ab2d6d52a92e8e7e561de",
      "parents": [
        "a9298cc06f00efcad0386aa7b142dc735946a352"
      ],
      "author": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Thu Jan 09 23:52:21 2020 +0000"
      },
      "committer": {
        "name": "Tobias Thierer",
        "email": "tobiast@google.com",
        "time": "Fri Jan 10 14:28:21 2020 +0000"
      },
      "message": "Make extract_package() work for toplevel classes.\n\nBefore this CL, classes in the unnamed package, such as\n\nL$r8$backportedMethods$utility$Objects$2$checkIndex\n\n(which looks like it is generated by R8 for Objects.checkIndex() calls)\nwere breaking the build because extract_package was incorrectly assuming\nthat there would always be a \u0027/\u0027 in the identifier string.\n\nTest: Build that previously broke is now working.\n\nChange-Id: Ice78d6b31c4f38a3c9d529bc6156d625d19bcacf\n"
    },
    {
      "commit": "44036a76899fbc44cc367dd763c1496e1e60899c",
      "tree": "c27d2bda06151e8eeae7098a3db7bb3957064a19",
      "parents": [
        "1695301cc944259d6df9589b6b51189d145dd62d"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Thu Oct 31 12:12:00 2019 +0000"
      },
      "committer": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Fri Nov 15 16:54:14 2019 +0000"
      },
      "message": "Blacklist @TestApis by default.\n\nIf the signature has @UnsupportedAppUsage or @SystemApi annotation as well, those take precedence and the API would either be whitelisted or greylisted accordingly. All other, \"pure\" @TestApi signatures would be blacklisted and only allowed access in instrumented processes.\n\nTest: manual\nBug: 133832325\nChange-Id: I4684929caed8be7c42c91fed33ddd2a3b67ae19b\n"
    },
    {
      "commit": "a4e64da2e4baabf738a60d983d0460f687c1f5d6",
      "tree": "9fc320c21d067a6934e84e42f77d26204419ac44",
      "parents": [
        "aec3eca59129b668193b763958e60acf9fd45943"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 01 11:57:05 2019 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Wed May 01 11:57:05 2019 +0100"
      },
      "message": "hiddenapi: Support greylist-max-q\n\nTest: set maxTargetSdk\u003dQ on an API, compiles, check hiddenapi-flags.csv\nChange-Id: I990972d652d4f4bc578592a9b3d9954f93b1ab9f\n"
    },
    {
      "commit": "a6e09b427392b4448545a92363d2e6e1967d335c",
      "tree": "f60c7751e63e6a0e1dfcde34cda7d96a2c7b0fd0",
      "parents": [
        "f3736d67f85fd9a48451e165c70e16b1c3fa6856"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Mar 29 15:27:55 2019 +0000"
      },
      "committer": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Mon Apr 01 15:32:36 2019 +0100"
      },
      "message": "Automatically greylist code in 3P packages\n\ngenerate_hidden_api_lists now receives a file containing package names\nwhich need to be greylisted (although it could be made to work with any\napi list required).\nAlso took the opportunity to clean up the tests to reflect the more\nstrict code.\n\nBug: 129387816\nTest: m appcompat\nTest: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: I619f8581d166aa48eda572bc0053d8739d6420eb\n"
    },
    {
      "commit": "80a5660238dbc5952a67169cf11a49e074ad966f",
      "tree": "ad2df22d1e95c23dde5c09df7e6276622f8b6e66",
      "parents": [
        "3275a6b2450745486cacf2fc7ed8d4075556e606"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Mar 01 18:49:15 2019 +0000"
      },
      "committer": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Thu Mar 07 10:40:52 2019 +0000"
      },
      "message": "Add extra hidden api related tags\n\n@SystemApi and @TestApi entries in the whitelist can now be\ndifferentiated from the rest of the apis. @TestApi methods\nare implicitly greylisted.\n\nTest: m test-art-host-gtest-hiddenapi_test\nChange-Id: Id739f04550842f7b3160685e1635ba20efb223cc\n"
    },
    {
      "commit": "997fa461978f87fc2d9c444213b24ef56c29e7e4",
      "tree": "e7b1b7cf97bd3bf9af9b14d3f022def90fb24d34",
      "parents": [
        "3e15c9f9ba6b36fbbd919805a898700ed16d8e47"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Feb 15 12:58:26 2019 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Mar 01 10:39:16 2019 +0000"
      },
      "message": "Switch android.test and junit classes to use UnsupportedAppUsage\n\nThe UnsupportedAppUsage annotations could not be added directly to the\njava files in src/ as they have to be built against the current api\nwhich does not include the annotation. Instead this uses the same\ntechnique as used for libcore/ojluni files and adds the annotations to\nstub files (in hiddenapi/src) which are built as part of the\nandroid.test.base-hiddenapi target. That target is added to a special\nwhitelist in build/soong/java/config/config.go which causes the\nhiddenapi information to be extracted from the target.\n\nAlso, updates the preupload check to prevent anymore entries being\nadded to the config/hiddenapi-greylist.txt for android.test or junit\nclasses.\n\nBug: 73711752\nTest: m cts-hiddenapi_flags-csv and check that it contained the\n        correct entries even though they had been removed from\n\tconfig/hiddenapi-greylist.txt\nChange-Id: Ifaf15d2751f54cb03f8402b866a0ee4da7acc4d2\n"
    },
    {
      "commit": "439d3496ed38cea04824f7ad48e277297ab1f243",
      "tree": "0de7538e6832966d630f246b1493bfdd16ff8ffb",
      "parents": [
        "17d16e84da23464dc7a621eaa87a79c6cc1170ce"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Fri Dec 07 11:49:55 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Jan 19 15:57:36 2019 +0000"
      },
      "message": "hiddenapi: Support \u0027core-platform-api\u0027 flag\n\nLibcore class members annotated with @CorePlatformApi now generate\na new hiddenapi flag. This is the first of \"domain API\" flags which\ncan be used in conjunction with API list flags. Therefore modify\nthe \u0027generate_hiddenapi_lists.py\u0027 logic to treat them differently.\nSpecifically, the script marks otherwise unassigned class members\nblacklisted. A class member with \u0027core-platform-api\u0027 may still not\nbe assigned an API list and should be blacklisted.\n\nBug: 119068555\nTest: m appcompat\nChange-Id: I2b67e7a619677e853c87bc2da934410458ce4d14\n"
    },
    {
      "commit": "17d16e84da23464dc7a621eaa87a79c6cc1170ce",
      "tree": "3322550f528428f4eb4d7f2b88e71429a6faea54",
      "parents": [
        "bc6e433ae488b4ad807c1503a53155a3259fd0b8"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Dec 13 17:00:09 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat Jan 19 15:57:36 2019 +0000"
      },
      "message": "hiddenapi: Expect public/private API as CSV\n\nRefactor of `hiddenapi` changed the output format of public/private API\nlists to a single CSV file. Change API list generation accordingly.\n\nIn order to avoid special-casing this CSV file, it is treated the same\nas the CSV files produced by `class2greylist`. The merging rules are\nrelaxed so that signatures in CSV files are not checked against\na pre-initialized set of all signatures (previously generated from the\npublic/private API files). This should not lead to build errors as the\nCSV files are always auto-generated, and a missing/extra signature will\nbe caught by `hiddenapi`.\n\nAPI lists in frameworks/base/config are processed later and checked\nthat they are a subset of the signatures in CSV.\n\nBug: 119068555\nTest: compiles, hiddenapi-flags.csv unchanged\nChange-Id: I33f2cbaa15f2d423a75e6ca64abe1c5b0c40c86f\n"
    },
    {
      "commit": "352956b07e1cd5d7bdc3f3e747679fa49859f8ee",
      "tree": "7416429ef98a3da5a289606d6b10395a87818654",
      "parents": [
        "17f9b9bfb66be366e874ed98d52a622e0b97df2a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Dec 07 11:52:19 2018 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Dec 10 16:05:54 2018 +0000"
      },
      "message": "Switch last c.a.i18n.phonenumbers hiddenapi entries to annotations\n\nPrevious changes could not remove these entries as they are implicit\nmethods, i.e. are not present in the source, and so could not be\nannotated. That is no longer true and so these entries can now be\nremoved.\n\nThis was tested by making and then manually checking that the generated\nout/target/common/obj/PACKAGING/hiddenapi-light-greylist.txt was the\nsame (after sorting) before and after this change.\n\nBug: 117818301\nBug: 119861512\nTest: as above\nChange-Id: Ic33c693f50cac011332c5ba5a5c0e2b6562e6ef8\n"
    },
    {
      "commit": "5cd148fc7ae213ceda868c22ee5c573b5b1a47c9",
      "tree": "b10725627f827ff755006452fb828ff6b7ff5f52",
      "parents": [
        "89bf0f28bf8dfe728083913f641202f103af9bf6"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 01 09:54:25 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 29 15:43:02 2018 +0000"
      },
      "message": "hiddenapi: Add constants for \u0027greylist-max-p\u0027\n\nNew category of hidden API has been created. Update the script\ngenerate_hiddenapi_lists.py with the new flag name.\n\nTest: m, phone boots\nChange-Id: I79e5478678880939e20e500cb8dad9b2a56fc84f\n"
    },
    {
      "commit": "89bf0f28bf8dfe728083913f641202f103af9bf6",
      "tree": "c90fde6bc79ceb1dd0cce4dbb54c9f49fd524cc2",
      "parents": [
        "74c171b4daa481301152f268e2f7cbdd7960b325"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Oct 30 18:21:24 2018 +0000"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Nov 29 15:43:01 2018 +0000"
      },
      "message": "Turn hidden API lists into a single CSV\n\nMaintaining multiple text files has become too cumbersome as adding\neach new category of API requires changes across many projects.\nThis patch changes generate_hiddenapi_lists.py to produce a single\nCSV file in the format:\n\n  \u003capi_signature\u003e,\u003cflag1\u003e,...,\u003cflagN\u003e\n\nIt can accept legacy API list files as input (for existing\nframeworks/base/config/hiddenapi-*.txt files) as well as per-package\nCSVs produced by class2greylist.\n\nTest: m, check lists have not changed\nTest: phone boots\nTest: tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: Iebcef426ec93ea1d72b662bbff91d4e068fa0a70\n"
    },
    {
      "commit": "00537c15e876d88a967d9f656ea8fadb1a4015ef",
      "tree": "6a3f41d6b9b7b55dfa68029d7c8697a4c8b098c3",
      "parents": [
        "900ab8accef15f3a7622f0edccd53e99c44c03b7"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Nov 28 12:22:14 2018 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Nov 29 09:41:56 2018 +0000"
      },
      "message": "Prevent hiddenapi entries being added for libcore related projects\n\nThe libcore related projects (see below) have been (mostly) switched\nover to use UnsupportedAppUsage annotations, This change will prevent\nentries for those projects being added to a config/hiddenapi-* file.\n\n* libcore\n* external/bouncycastle\n* external/conscrypt\n* external/icu\n* external/okhttp\n* external/libphonenumber - still has a couple of entries in\n      config/hiddenapi-light-greylist.txt due to limitations in\n      UnsupportedAppUsage/class2greylist.\n\nTested by attempting to upload the file with entries for libcore\nprojects and without those entries and checking that the behavior\nis expected.\n\nTest: see above\nBug: 117818301\nChange-Id: I67a30b307e12e842b28cfb2160fab0029868fa06\n"
    },
    {
      "commit": "5037a7eb93ec73c152da5f0f19f0ff04e9c3a02c",
      "tree": "08f784442741cc842cbc70c5e8fb1c79f92a7f65",
      "parents": [
        "23ccecc4ca9f58139baa72bd4783451b780b1eb5",
        "ea14c0c36f2ff5c18c2e62c71f50f01cef47f077"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Oct 17 09:20:04 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 17 09:20:04 2018 +0000"
      },
      "message": "Merge \"Merge hidden API metadata into a single CSV file.\""
    },
    {
      "commit": "c78bea41c6a6dc6c338ddfc4a4fb9d140ecb40f0",
      "tree": "34e319c65f30afd853599e37d76bc0bafa04eb19",
      "parents": [
        "08667cc9c12664cfcc69faf831e8cab878cc04b6"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Oct 16 14:28:26 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Oct 16 14:30:01 2018 +0100"
      },
      "message": "Fix issue with sort_api.sh\n\nShould use -ne not -neq.\n\nTest: run script manually\nBug: 115609023\nChange-Id: I337ed43be1f9250e6c2b2c88d97c68a5c9e8941c\n"
    },
    {
      "commit": "ea14c0c36f2ff5c18c2e62c71f50f01cef47f077",
      "tree": "a858e55b9521216d48399152f113273d513836e7",
      "parents": [
        "1ad4aed0b96877092080ea2225cbd70f27ae8eb8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Oct 05 14:41:03 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Tue Oct 16 12:12:27 2018 +0100"
      },
      "message": "Merge hidden API metadata into a single CSV file.\n\nAdd a python script to merge the CSV files, dealing with the fact that the\nsource columns may differ due to the annotation properties present in the\nsource.\n\nAdd this new file and the existing greylist.txt files as dependencies of\nthe \u0027dist\u0027 target, so that they appear as artifacts on the build server.\nThis allows them to be processed later by reading them from the build\nserver.\n\nTest: m out/target/common/obj/PACKAGING/hiddenapi-greylist.csv\nBug: 117314178\nChange-Id: Ib9e5da90e4c32333a3f4f02ee7f159f77086ae5e\n"
    },
    {
      "commit": "50dea427292b6e5435c6cd0010e2f3f05b3900e4",
      "tree": "2b3f21e1db09f65f17484f2a17bcc6009cf62541",
      "parents": [
        "1ad4aed0b96877092080ea2225cbd70f27ae8eb8"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Oct 05 15:47:29 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Oct 15 16:38:12 2018 +0100"
      },
      "message": "Add new \"max-sdk-p blacklist\".\n\nThis will contain greylist entries accessible by apps with a\ntargetSdkVersion of less than Q. Currently empty, will be populated in\nfollow up CLs.\n\nFor now, these APIs are just merged into the light greylist at build time,\npending support in the runtime for implementing the correct runtime\nbehavior.\n\nAlso fix a bug in sort_api.sh so it deals with empty API lists\ncorrectly.\n\nBug: 115609023\nTest: m\nChange-Id: I213874062f393f96d120648a934ae5ad7aba93af\n"
    },
    {
      "commit": "e9622a3d3ae3ff6f61aa294aa16a0e232e97f09a",
      "tree": "0f2e960156f7b1b4345ed5044d1b158481e29edc",
      "parents": [
        "194170e7f7493c828235f325140dd860d31d077d"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Sep 20 11:03:40 2018 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Sep 21 11:05:06 2018 +0100"
      },
      "message": "Add serialization methods to whitelist not light greylist\n\nChecked the contents of the hiddenapi lists before and after the change\nand the methods were definitely moved from light greylist to the\nwhitelist.\n\nFlashed the device and checked the log and did not see anything out of\nthe ordinary.\n\nTest: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: I9b4b2426251e99495f65ae02a3c2c32ce6966625\n"
    },
    {
      "commit": "6be0fdde4adc0c41fb9bc3376e7d1938a5d4de25",
      "tree": "acbc46e75c3bb287df6800b765990c6440f5b769",
      "parents": [
        "53f6d1b060c10121062c4054514c3e3a0c2444bd"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Sep 14 15:19:10 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Fri Sep 14 15:29:35 2018 +0100"
      },
      "message": "Don\u0027t fail if there are no comments.\n\nGrep exits with non-zero if it find no matches. But it doesn\u0027t matter in\nthis case, so just carry on.\n\nTest: frameworks/base/tools/hiddenapi/sort_api.sh \\\nTest:    frameworks/base/config/hiddenapi-light-greylist.txt\nChange-Id: I7c219ee617f7dfa3cff5232ab979cc4ba38ebbfd\n"
    },
    {
      "commit": "4a55eebf26a5366de302578f76947e7c05305a22",
      "tree": "2f1811bb36030f2252a422b3bca1b3a7f6762f0a",
      "parents": [
        "60ff003a9d988ba7459906b131fa5718b80dc093"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 11 11:09:01 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue Sep 11 11:43:07 2018 +0100"
      },
      "message": "Revert \"Check in P dark greylist, use it for hidden API list generation\"\n\nThis reverts commit 3cc74c71ef907a76547424aea6597f7b2907e9fb.\nWe saw app crashes due stricter classification of non-SDK APIs.\n\nBug: 115284625\nBug: 113881436\nTest: phone boots\n\nChange-Id: I689d0fbf66fabeffa5032e13f2f1f314c50b6cc5\n"
    },
    {
      "commit": "ae88d4e21e072a5a4a15777ce2575b90a4689333",
      "tree": "cf0d7dbec4ac0d9c4e7f3406016e997559a31c66",
      "parents": [
        "081a589ad997e30062bfb9c6cd18f77d9cae0245"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 14:46:55 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 15:10:28 2018 +0100"
      },
      "message": "Ignore comment lines in hidden api lists\n\nIt is sometimes useful to add comments at the top of a source file. This\npatch changes hidden API list generation to ignore lines beginning with\na hash.\n\nNote that due to the sorting constraints on hidden API lists, comments\ncan be only at the top of the files.\n\nTest: m appcompat\nChange-Id: I1bc6fd44d1b1f10a5adc45093d7f7ed5a0c5a54f\n"
    },
    {
      "commit": "3cc74c71ef907a76547424aea6597f7b2907e9fb",
      "tree": "3b698fdf89b4a5abeed7a2b08aa2f6455fc20bd1",
      "parents": [
        "08d7a208e8c8b6e23d7949d5ce9bc06cb5bea538"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 11:02:06 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Sep 06 11:10:51 2018 +0100"
      },
      "message": "Check in P dark greylist, use it for hidden API list generation\n\nWe want to preserve the same semantics as P wrt dark greylist. This will\neventually become the \"blacklist for target SDK \u003e\u003d P\".\n\nBug: 113881436\nTest: phone boots\nChange-Id: I3bb72102e1d054eb0f2cae089ab633a0bc2bb276\n"
    },
    {
      "commit": "8503b9045b71cb3d89af5a389257ba8e8a8fa611",
      "tree": "b9ddc88e36247631f22d958ad05b9ae97bc4525c",
      "parents": [
        "6717a6f930cd1fc72ee71de7d01b0077f9e055e2"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 30 13:35:03 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Thu Aug 30 16:19:26 2018 +0100"
      },
      "message": "Rewrite hidden API list generation in Python\n\nGenerating hidden API lists has grown in complexity and the original\nMakefile rule has become a bottleneck for build times. Rewrite the\nlogic in Python.\n\nBug: 113278235\nBug: 73736106\nTest: frameworks/base/tools/hiddenapi/generate_hiddenapi_lists_test.py\nChange-Id: I63f03133d70260d06c55f482b844a4980dc6f734\n"
    },
    {
      "commit": "f364aedecb6a182d4673dd61f157459cc4d3c1fa",
      "tree": "3049cf661c9957e1d7b6d01e1850db1b9830fca9",
      "parents": [
        "716c04b29a0bd117aab33d8b81621a3fff0af7a7"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jul 26 14:57:08 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Thu Jul 26 15:57:05 2018 +0100"
      },
      "message": "Remove class2greylist from frameworks/base.\n\nIt\u0027s moving to a new home under art/tools, since it is needed by\nbranches which don\u0027t include frameworks/base.\n\nBug: 110868826\nTest: Build master-art branch\nChange-Id: Ice8324db52ae1e7e2ac6734e45874a66de935c9a\n"
    },
    {
      "commit": "738a23fbebc9a0fbdfcfecfbc2f9ee25ad39e9ca",
      "tree": "ec5244abd94a8e97ba49b3f70424b82071ff8c2b",
      "parents": [
        "9a783699cc0efd4d980ec1e35e7df56448ef32f4"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 25 09:45:04 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Wed Jul 25 09:45:04 2018 +0100"
      },
      "message": "Update annotation name in class2greylist.\n\nAnnotation was added with name @UnsupportedAppUsage after Android API\ncouncil discussion.\n\nBug: 110868826\nTest: m class2greylist\nChange-Id: I63ad61e97c5e8fdebfcead9e4ee5b060a60f97c7\n"
    },
    {
      "commit": "6395690ec99bd13214c0530cac54d33b1f8e601b",
      "tree": "9bcf78c13963e56233f72e52f20221c9ff59a7ce",
      "parents": [
        "bb352287c9f3631633274d2d70fc54b9b3eee851"
      ],
      "author": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Jul 09 15:07:56 2018 +0100"
      },
      "committer": {
        "name": "Mathew Inwood",
        "email": "mathewi@google.com",
        "time": "Mon Jul 23 14:39:19 2018 +0100"
      },
      "message": "Add new \"class2greylist\" tool.\n\nThis extracts signatures of methods that have the @UsedByApps annotation\nfor generating the greylist. It will be integrated into the build to\nreplace many members on greylist.txt.\n\nTest: $ atest class2greylisttest\nBug: 110868826\nChange-Id: Ifaf5859b60076c051de6be5a912ef70734330ce7\n"
    },
    {
      "commit": "2200a1b83bf94456711b61b518b0daa38b0e18ae",
      "tree": "9552a7789218e724afa7d6867a025d31cc11657c",
      "parents": [
        "40f67c52bb0553e81a1537369abe2878641a6aaa"
      ],
      "author": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Sat May 05 12:07:38 2018 +0100"
      },
      "committer": {
        "name": "David Brazdil",
        "email": "dbrazdil@google.com",
        "time": "Tue May 08 10:29:50 2018 +0100"
      },
      "message": "Add presubmit hook for hidden API lists.\n\nCheck that they\u0027re sorted as expected and contain no duplicates.\nThe sort order now uses:\n$ LC_COLLATE\u003dC sort -f\n\nSo that non-alphanumeric characters are not ignored, giving a more\nintuitive sort order. the \u0027-f\u0027 means ignore case.\n\nAlso sort the existing lists accordingly.\n\nTest: repo upload\nBug: 64382372\nMerged-In: I52b884da33a9a46455df6747a215683d9d3c3218\nChange-Id: Icc124fd8ceb3f001a9c11bbf40e0a111910c6b39\n(cherry picked from commit e5dc64d4281dd9f38c2b585202e26ae4278fcfc5)\n"
    }
  ]
}
