)]}'
{
  "log": [
    {
      "commit": "3835509f95b1a12d0d6e5bf32e2e1680450b193b",
      "tree": "fb3edbb903057eb6edb3a01340cb0342e31e4dd0",
      "parents": [
        "ece322f64024fe41489edb3529462d64c959cb6b",
        "9c5c09f0ad6ac83104dae86ad719a46fb3ea91c4"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Wed Sep 13 22:38:33 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 13 22:38:33 2023 +0000"
      },
      "message": "Merge \"Error out if skip_preprocessed_apk_checks is set when it\u0027s not necessary\" into main"
    },
    {
      "commit": "3d2b08fe0deb17f52bd8762f527998fb9b5e5ef1",
      "tree": "f119c703a3cc96e937461b4b4bfc92fb691ba631",
      "parents": [
        "5c12fb922d735a91316734f12011283d85c6bf1c",
        "90355f79bf5307abd81bbd63ac9ca15edcebd7dd"
      ],
      "author": {
        "name": "Sebastian Pickl",
        "email": "spickl@google.com",
        "time": "Tue Sep 12 18:53:47 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 18:53:47 2023 +0000"
      },
      "message": "Merge \"Revert \"Change symlink_forest to use relative symlinks.\"\" into main"
    },
    {
      "commit": "90355f79bf5307abd81bbd63ac9ca15edcebd7dd",
      "tree": "5d724dfd8b7712d12c25493f24a8b5fb655e4b98",
      "parents": [
        "b98b3a429f6f3c54fa1bae215b10029ff1beb3f0"
      ],
      "author": {
        "name": "Sebastian Pickl",
        "email": "spickl@google.com",
        "time": "Tue Sep 12 18:03:01 2023 +0000"
      },
      "committer": {
        "name": "Sebastian Pickl",
        "email": "spickl@google.com",
        "time": "Tue Sep 12 18:51:39 2023 +0000"
      },
      "message": "Revert \"Change symlink_forest to use relative symlinks.\"\n\nRevert submission 2673616-relativesymlinks-fix\n\nReason for revert: this breaks tests verified with go/abtd https://android-build.googleplex.com/builds/abtd/run/L36000000963001181\n\nBug: 300122962\n\nReverted changes: /q/submissionid:2673616-relativesymlinks-fix\n\nChange-Id: I5a97c4fbe4df5727c0604a07137093d0f00c7776\n"
    },
    {
      "commit": "4eabebec695c365012cc16777d818904effac9ca",
      "tree": "3f8643a4e06db7c6eb4d7b89210c4a3f1a23f615",
      "parents": [
        "7ebb91a449def588df84c36388a4707b811126a6",
        "b98b3a429f6f3c54fa1bae215b10029ff1beb3f0"
      ],
      "author": {
        "name": "Mark Dacek",
        "email": "dacek@google.com",
        "time": "Tue Sep 12 15:47:42 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Sep 12 15:47:42 2023 +0000"
      },
      "message": "Merge \"Change symlink_forest to use relative symlinks.\" into main"
    },
    {
      "commit": "b98b3a429f6f3c54fa1bae215b10029ff1beb3f0",
      "tree": "f8bcd2bd1053622c60243fe507ea6bdf458b772a",
      "parents": [
        "b77fb702d86a460bb0ae35db472ae4c608c15713"
      ],
      "author": {
        "name": "MarkDacek",
        "email": "dacek@google.com",
        "time": "Mon Jul 24 19:49:28 2023 +0000"
      },
      "committer": {
        "name": "MarkDacek",
        "email": "dacek@google.com",
        "time": "Tue Sep 12 04:02:23 2023 +0000"
      },
      "message": "Change symlink_forest to use relative symlinks.\n\nAlso add script to remove the Bazel output base.\nThis will assist with supporting movable checkouts alongside\nmixed builds.\n\nBug: 259191764\nTest: m \u0026\u0026 (move topic and prepare_moved_top.sh) \u0026\u0026 m\nTest: m \u0026\u0026 prepare_moved_top.sh \u0026\u0026 m\nTest: build/soong/tests/relative_symlinks_test.sh\n\nChange-Id: I0f53da8d99f752fad496cf3ac61b01f001b7296d\n"
    },
    {
      "commit": "4bc102672a5351528710ac6f77b67e2faaded6b9",
      "tree": "14ff35f6b940d36365d1fcaf9e8015257574a5c7",
      "parents": [
        "86b9b13607e21f29234a546d347011b730e46795"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Fri Sep 08 11:51:45 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Fri Sep 08 15:40:12 2023 +0900"
      },
      "message": "apex: invoke `conv_linker_config validate` as validation\n\n`conv_linker_config validate` command is used to validate the linker\nconfiguration embedded in APEX to detect common mistakes.\n\nFor example, when used in APEX, linker configuration can\u0027t set\nprovideLibs/requireLibs. For APEX, there are\nprovideSharedLibs/requireSharedLibs in APEX manifest for that purpose.\n\nOne might make mistake by setting provideLibs in linker config.\nNow, when these unsupported properties are set, there\u0027ll be build-time\nerror like:\n\n // set provideLibs key in com.android.art\u0027s linker config.\n $ m com.android.art\n   ...image.apex/etc/linker.config.pb: provideLibs is set. Use provideSharedLibs in apex_manifest\n\nBug: 264341796\nTest: m com.android.art (see above)\nChange-Id: Ibaf7322616ad333569e6d721680f3d72243402a2\n"
    },
    {
      "commit": "51d7bfd9a1c71300e0254aca599e3cb2e5df4cce",
      "tree": "12db2727afc7948f1cc810b7c9d9c5a1ae8daf2d",
      "parents": [
        "d293e28f521f37d4e07c307090e5db829545d774"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Sep 07 05:31:32 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Sep 07 05:31:32 2023 +0000"
      },
      "message": "Revert^2 \"Only allow setting presigned without preprocessed on targetSdk \u003c 30\"\n\nThis reverts commit d293e28f521f37d4e07c307090e5db829545d774.\n\nReason for revert: The underlying issue was fixed in ag/24685010\n\nChange-Id: I06810d37dba37aa12f9a1e14b0749f1e1eb41136\n"
    },
    {
      "commit": "d293e28f521f37d4e07c307090e5db829545d774",
      "tree": "4eafd2bd9bc205ffc239e6e6198e08829246f871",
      "parents": [
        "6158528e152304f1259e31ff343358ff0f50c0e4"
      ],
      "author": {
        "name": "Karl Shaffer",
        "email": "karlshaffer@google.com",
        "time": "Thu Sep 07 00:49:34 2023 +0000"
      },
      "committer": {
        "name": "Karl Shaffer",
        "email": "karlshaffer@google.com",
        "time": "Thu Sep 07 00:51:09 2023 +0000"
      },
      "message": "Revert \"Only allow setting presigned without preprocessed on targetSdk \u003c 30\"\n\nThis reverts commit 6158528e152304f1259e31ff343358ff0f50c0e4.\n\nReason for revert: DroidMonitor-triggered revert due to breakage https://android-build.corp.google.com/builds/quarterdeck?branch\u003dgit_udc-d1-dev-plus-aosp\u0026target\u003daosp_bramble-trunk_staging-userdebug\u0026lkgb\u003d10771573\u0026lkbb\u003d10771600\u0026fkbb\u003d10771587, bug https://buganizer.corp.google.com/issues/299369971\n\nBUG: 299369971\n\nChange-Id: I6bf6eb5c0fb9e30197e145121adc7ed58871526f\n"
    },
    {
      "commit": "9c5c09f0ad6ac83104dae86ad719a46fb3ea91c4",
      "tree": "aff987f8763e529e70cf7748f6aec3f62743b4bd",
      "parents": [
        "2f681324c2aef739291a259dbc654bc86b6a74ff"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Wed Sep 06 16:11:44 2023 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Wed Sep 06 16:11:44 2023 -0700"
      },
      "message": "Error out if skip_preprocessed_apk_checks is set when it\u0027s not necessary\n\nSo that we don\u0027t erroneously add skip_preprocessed_apk_checks\neverywhere.\n\nBug: 185811447\nTest: Presubmits\nChange-Id: Icb1c6163d170ca4181c5c6a814b51fda4777746f\n"
    },
    {
      "commit": "6158528e152304f1259e31ff343358ff0f50c0e4",
      "tree": "12db2727afc7948f1cc810b7c9d9c5a1ae8daf2d",
      "parents": [
        "4e6c42d417c41f91f60333dad0974d7bfb7f5ae2"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Fri Jul 14 16:23:39 2023 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue Aug 29 11:18:44 2023 -0700"
      },
      "message": "Only allow setting presigned without preprocessed on targetSdk \u003c 30\n\nWhen targetSdk is \u003e\u003d 30, the system verifies that you use a valid\nsignature V2+ certificate. Uncompressing ndk/dex files or aligning\nthe zip file will break a signature V2, so these apks should really\njust set preprocessed: true.\n\nFixes: 185811447\nTest: Presubmits\nChange-Id: Id89c42bcd5b5daa6eda1716bff4023423298036b\n"
    },
    {
      "commit": "f29ca58e88c5846bbe8955e5192135e5ab4f14a1",
      "tree": "1eea81e6f3b0a185c5e9b87ef018b10ef6c144a1",
      "parents": [
        "cfe9e6d00823dbf4bfdd9f29a57c6a82baf68e97"
      ],
      "author": {
        "name": "A. Cody Schuffelen",
        "email": "schuffelen@google.com",
        "time": "Thu Jul 13 19:03:39 2023 -0700"
      },
      "committer": {
        "name": "A. Cody Schuffelen",
        "email": "schuffelen@google.com",
        "time": "Thu Aug 03 16:26:44 2023 -0700"
      },
      "message": "Darwin/Mac OS host rust compilation fixes\n\n- Don\u0027t pass `--as-needed` to the linker on Mac OS which is unsupported\n  there\n- Use `--force_load` rather than `--Wl,--whole-archive` on Mac OS\n- Scan `rustc`\u0027s linker arguments for `-dylib` and `-dynamiclib`, which\n  it can use instead of `-shared` on Mac OS:\n  https://github.com/rust-lang/rust/blob/7bd81ee1902c049691d0a1f03be5558bee51d100/compiler/rustc_codegen_ssa/src/back/linker.rs#L319\n\nTest: m libhalf serde_derive\nBug: 291164566\nChange-Id: Iecd6c2532fa31c9476834f49b109de98cbd2dccf\n"
    },
    {
      "commit": "ac6c853ee66043f87a34158ad66fb86cd936ceda",
      "tree": "596d032be3d4d4b820b2210c4eaf7cad32d5806c",
      "parents": [
        "e61a0817f6fb0262ecc59f6b4e7bf486c7a3f12d"
      ],
      "author": {
        "name": "Alyssa Ketpreechasawat",
        "email": "kalyssa@google.com",
        "time": "Fri Jul 14 17:19:03 2023 +0000"
      },
      "committer": {
        "name": "Alyssa Ketpreechasawat",
        "email": "kalyssa@google.com",
        "time": "Fri Jul 14 17:26:13 2023 +0000"
      },
      "message": "Fix the number of required parameters in deapexer script.\n\nRegarding aosp/2624311, `blkid_path` was removed from the command, so the number of parameters should be reduced by 1.\n\nTest: MODULE_BUILD_FROM_SOURCE\u003dfalse m (in internal-main branch)\nBug: 279858383\nChange-Id: Iad494b757e2a4152a6867098c3eb7419c3bba71b\n"
    },
    {
      "commit": "6c762092ee81b216173219f5618e356867309bb8",
      "tree": "202867eec07cbf788515e85c1b05a6e676603ace",
      "parents": [
        "511e1d0b774e19cabcfa976dda1ba456a61065ed"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Jun 14 15:20:29 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Jun 14 15:23:03 2023 +0900"
      },
      "message": "Remove --blkid_path argument\n\ndeapexer doesn\u0027t need it.\n\nBug: 279858383\nTest: presubmit\nTest: m MODULE_BUILD_FROM_SOURCE\u003dfalse droid\nChange-Id: Ie8311c74682f366cf6aeebb669500d01675cd0bf\n"
    },
    {
      "commit": "a44967899617c682d218df3717d3f0e856882055",
      "tree": "8094cf865e59cce630b555ab3ee7f3df334c1999",
      "parents": [
        "b7550aa09af04e92ce24e5bf2594b312d8bc51f7"
      ],
      "author": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Wed May 17 16:57:30 2023 +0100"
      },
      "committer": {
        "name": "Jiakai Zhang",
        "email": "jiakaiz@google.com",
        "time": "Tue May 30 15:46:38 2023 +0100"
      },
      "message": "Move CLC construction to Ninja phase.\n\nBefore this change, dexpreopt was often broken with optional libraries.\nThis was because the CLC construction was done in Soong at an early\nstage, where we don\u0027t have sufficient information to determine whether\nan optional library is installed or not.\n\nFor example, the \"Settings\" package uses an optional library called\n\"androidx.window.extensions\". On some devices, the library is installed,\nbut on some other devices, it\u0027s not. Soong always adds the library to\nthe CLC, meaning the CLC is wrong for devices which don\u0027t have the\nlibrary. This change fixes the problem. See the tests below.\n\nAfter this change, the CLC construction is done by a Python script\ninvoked at a very late stage. It uses product_packages.txt, which is\ngenerated by Make, to determine whether an optional library is\ninstalled or not, and filter out libraries that are not installed.\n\nNote that optional libraries are still added as dependencies by Soong.\nThis is because dependencies have to be added at an early stage. This\nmeans what dex2oat eventually uses will be a subset of the dependencies,\nwhich is fine.\n\nBug: 282877248\nTest: m\nTest: atest construct_context_test\nTest: -\n  1. lunch aosp_cf_x86_64_phone-userdebug \u0026\u0026 m\n  2. Check the .invocation file of the \"Settings\" package (defined in\n     .bp file)\n  3. See androidx.window.extensions\nTest: -\n  1. lunch aosp_redfin-userdebug \u0026\u0026 m\n  2. Check the .invocation file of the \"Settings\" package (defined in\n     .bp file)\n  3. Don\u0027t see androidx.window.extensions\nTest: Check the .invocation file of the \"Dialer\" package (defined in\n  .mk file)\nTest: -\n  1. Build a Pixel 5 system image and flash it to a Pixel 5 device.\n  2. adb shell pm art dump\n  3. See \"reason\u003dprebuilt\" instead of \"reason\u003dvdex\".\n     (https://diff.googleplex.com/#key\u003dfB6Ls9q2QGSN, before: left,\n     after: right)\n\nChange-Id: Ia112bd7c2328373e68db6bffb74bf34030f683d8\n"
    },
    {
      "commit": "8f065e6c5dc6dbd084d31e23764c8f208202c2cb",
      "tree": "e369ba187b62072f4b7172b95194791f2623d2e2",
      "parents": [
        "21a2851ec9e74fdfa7b9172f4cd53465cba796d5"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu May 04 18:02:22 2023 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu May 04 18:02:22 2023 -0700"
      },
      "message": "Delete rbc-run script\n\nIt was inlined into the usage in the other cl in this topic.\n\nBug: 280685526\nTest: ./build/bazel/ci/rbc_dashboard.py --quick aosp_arm64-userdebug\nChange-Id: I68af9186e17a996baf4676d97cdc9895abcb7e06\n"
    },
    {
      "commit": "cb97a76ad4e66780d5efae641858a6b5eb2fbdf5",
      "tree": "5f8d89cd65114582e10625e1c5b7cb84cf577d52",
      "parents": [
        "acc0473aa302efdc32552b13e483020979aa22a3",
        "24297765558e6e27230c0511a3733ce307b558cc"
      ],
      "author": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Thu May 04 18:01:13 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 04 18:01:13 2023 +0000"
      },
      "message": "Merge \"Add jdk.internal.access to the allowed package list.\""
    },
    {
      "commit": "24297765558e6e27230c0511a3733ce307b558cc",
      "tree": "cd8b018861ce88952b3aad224998631831eb668e",
      "parents": [
        "30208863b4ffdf48bd75549a20d083ef8950c3a2"
      ],
      "author": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Tue May 02 15:42:56 2023 +0100"
      },
      "committer": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Wed May 03 07:21:27 2023 +0000"
      },
      "message": "Add jdk.internal.access to the allowed package list.\n\nThis is part of OpenJDK17 update.\n\nBug: 270674727\nTest: m\nChange-Id: I0708ee286cd7c3c6eef593784affaeffbdf0a76c\n"
    },
    {
      "commit": "580f7b0094bd98d3769b6cdeaaab6a9748621253",
      "tree": "742ba6109f62d12808b2150c9477d496781774df",
      "parents": [
        "30208863b4ffdf48bd75549a20d083ef8950c3a2"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Wed Aug 17 16:50:48 2022 +0000"
      },
      "committer": {
        "name": "Sam Delmerico",
        "email": "delmerico@google.com",
        "time": "Tue May 02 15:10:16 2023 -0400"
      },
      "message": "Add script for modifying privapp permission allowlists\n\nThis script will be used to change the package that is being allowed to\nuse privileged permissions.\n\nTest: python scripts/modify_permissions_allowlist.py\nBug: 242509786\nChange-Id: I1d7cb3c906ad39aef42ad4394953251db40d1bf1\n"
    },
    {
      "commit": "f5cd47784139d71f650284dfb42ec1ea640c9bb9",
      "tree": "010c9afe973bae83f020b1fbb60f2525580b93a0",
      "parents": [
        "01add2893c0b9d6da1e631de0c93bba91865c96d",
        "e7c71c344d462cac998b37d551bd78baa892082d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 13 22:45:02 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 13 22:45:02 2023 +0000"
      },
      "message": "Merge \"Split Rust crate builds into compile and link phases.\""
    },
    {
      "commit": "e7c71c344d462cac998b37d551bd78baa892082d",
      "tree": "b1f74cb799fb0258b30352fcb40d8d4cf0dfe27c",
      "parents": [
        "38c39aff6107811117a33d9b6ce10202ce3de7ae"
      ],
      "author": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Fri Mar 31 20:21:19 2023 -0700"
      },
      "committer": {
        "name": "Peter Collingbourne",
        "email": "pcc@google.com",
        "time": "Wed Apr 12 15:51:41 2023 -0700"
      },
      "message": "Split Rust crate builds into compile and link phases.\n\nTeach rustc to generate object files instead of a linked executable\nfor binary and shared library crates. This lets us skip the lengthy\nRust compilation phase when only the C++ dependencies of these crates\nhave changed.\n\nThis works using a Python script that replaces the linker invoked by\nrustc and converts the linker command line into a rspfile that can be\nused during the link phase. The script makes certain assumptions about\nhow rustc invokes the linker, but since we control the version of Rust\nwe use, we can update the script if those assumptions ever break. I\u0027ve\nasked the Rust developers about adding an official way to do this so\nhopefully we won\u0027t need to rely on this hack in the future.\n\nThe rustc rule for Kythe has been altered to pass linker\u003dtrue, somewhat\nconsistent with the main rustc rule, which now doesn\u0027t invoke the actual\nlinker either. `m xref_rust` still succeeds, but hopefully we can find\nsomeone who knows more about the rest of the Kythe pipeline who can let\nus know whether it should still work. Otherwise, let\u0027s use this CL as\nan opportunity to find out whether the rest of the pipeline is happy\nwith linker\u003dtrue, since otherwise we will find it hard to maintain the\nKythe rule in the future.\n\nChange-Id: Ifb9c8689c1bd78c0afcf6fdfd111140d20377536\n"
    },
    {
      "commit": "4b4f03fd82b57712148733d21c90f58d696f929a",
      "tree": "538b1eb4b4c438262c642e61fe142e4599f2c3b2",
      "parents": [
        "a80b113f550438a365420a1e2316594dbecaaa1f"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Apr 12 17:20:47 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Apr 12 17:20:47 2023 +0900"
      },
      "message": "Make conv_linker_config visible to linkerconfig\n\nlinkerconfig_diff_test uses conv_linker_config.\n\nBug: 276890767\nTest: atest --host linkerconfig_diff_test\nChange-Id: I2f669b83f24b9dd563fc034738fe4ba83f95fd49\n"
    },
    {
      "commit": "7d8f39e127f0f75488f8c8368291180224691281",
      "tree": "2ac604d8bb4403bd7c92180f90efeb045b11482e",
      "parents": [
        "a2be13e680c88dc4ba8d866ba35772e55e6a08f9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 20 23:52:44 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 21 00:42:35 2023 +0000"
      },
      "message": "build-ndk-prebuilts.sh: disable bazel.\n\n```\nERROR: /buildbot/src/android/master/out/soong/workspace/external/libcxx/BUILD.bazel:30:18: While resolving toolchains for target //external/libcxx:libc++: com.google.devtools.build.lib.packages.NoSuchTargetException: no such target \u0027@soong_injection//product_config_platforms/products/ndk-eng:ndk-eng_android_riscv64\u0027: target \u0027ndk-eng_android_riscv64\u0027 not declared in package \u0027product_config_platforms/products/ndk-eng\u0027 defined by /buildbot/src/android/master/out/bazel/output/external/soong_injection/product_config_platforms/products/ndk-eng/BUILD (Tip: use `query \"@soong_injection//product_config_platforms/products/ndk-eng:*\"` to see all the targets in that package)\n```\n\nBug: https://github.com/google/android-riscv64/issues/10\nBug: http://b/274509603\nBug: http://b/262192655\nTest: build/soong/scripts/build-ndk-prebuilts.sh\nChange-Id: I4b6633ab5aab3f01953b628d78ac1d79f2a4ee3c\n"
    },
    {
      "commit": "65a97364baa19e363b5f7f9408e5434446347637",
      "tree": "1e227feac35586912115bbbf1f2103a681f01fdd",
      "parents": [
        "071c76e2239660bbb43163afe628ad89b7a92666",
        "f7d3109972de526d5ce50ad25e23912b5e65a713"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 20 21:10:53 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 20 21:10:53 2023 +0000"
      },
      "message": "Merge \"Generate NDK stubs for riscv64 too.\""
    },
    {
      "commit": "f7d3109972de526d5ce50ad25e23912b5e65a713",
      "tree": "f140b6266b697ea35c68d32cb98d0750b1dec668",
      "parents": [
        "b157846a685711b620ed9897b8dbd8c49bb5b9c8"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Mar 14 23:11:57 2023 +0000"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Mar 17 18:49:18 2023 +0000"
      },
      "message": "Generate NDK stubs for riscv64 too.\n\nThese will only be provisional, but there are enough different groups\nthat want *something* to make a start on porting that it\u0027s probably\ntime...\n\nIgnore missing dependencies in build-ndk-prebuilts.sh for now, because\nvarious pieces (that the NDK doesn\u0027t care about) are still missing.\n\nBug: http://b/273792258\nTest: build/soong/scripts/build-ndk-prebuilts.sh\nChange-Id: I39202a953a73dc449a10a887d497d09079c43402\n"
    },
    {
      "commit": "6d8716c1769a5e790dd3d406cd7c4395ea842a44",
      "tree": "f36dd3c757bd03401dc3edbd4980af49ef6022fe",
      "parents": [
        "9ac38d7e4e699770d9412443dd1d3c7884d8f1f7"
      ],
      "author": {
        "name": "Romain Jobredeaux",
        "email": "jobredeaux@google.com",
        "time": "Tue Mar 14 12:41:59 2023 -0400"
      },
      "committer": {
        "name": "Romain Jobredeaux",
        "email": "jobredeaux@google.com",
        "time": "Fri Mar 17 14:58:08 2023 +0000"
      },
      "message": "Create a sh_binary target for jars-to-module-info\n\nThis will enable its bp2build conversion, and is needed for java_system_modules support in Bazel\n\nChange-Id: I4f3ff5e36c8cd7f78efbb42f641efb2f76a8b71d\nBug: 215230098\n"
    },
    {
      "commit": "fba49bbf56d6b2e8ba82acca7dfb0224055a7f87",
      "tree": "4ac0e8e6879ae376a7461fe656103d4a3081cd46",
      "parents": [
        "f6fd4c28235af62f2e5babe8f7060b1ad935fa83"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Mar 09 14:54:31 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Mar 09 07:46:25 2023 +0000"
      },
      "message": "Add tests for conv_linker_config\n\nto cover the recent features.\n- conv_linker_config proto with empty input\n- conv_linker_config proto with existing output\n- conv_linker_config proto with --append\n- conv_linker_config proto with --force\n\nBug: n/a\nTest: conv_linker_config_test\nChange-Id: I0de79b6e05c2608e0e2f30dfbf04d8289672f362\n"
    },
    {
      "commit": "f6fd4c28235af62f2e5babe8f7060b1ad935fa83",
      "tree": "386c825b2857d1006a90f971ae0efeba766d1b5e",
      "parents": [
        "ae3e4cc2fd4e74e94510e671a98769ec428f6f39"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Mar 09 14:50:35 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Mar 09 07:46:00 2023 +0000"
      },
      "message": "Fix conv_linker_config with multiple input json files\n\n`conv_linker_config proto -s` should work with multiple json input\nfiles, but ParseDict() overwrites list fields (e.g. provideLibs), not\nappending elements.\n\nAlso added a test.\n\nBug: 264330513\nTest: conv_linker_config_test\nChange-Id: Idc482f941201f15e5fc276c0ffc0dfeaa09d0cc2\n"
    },
    {
      "commit": "3397b6a2aadf8c2eb808fa38f7d6c07d5c82f320",
      "tree": "57d6c7457de8f8aa636b936be583a8b3baf7aab4",
      "parents": [
        "edec71adae47232e967d3ba8f1a6a1c78afcee90"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Mar 08 05:44:17 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Mar 07 21:18:17 2023 +0000"
      },
      "message": "conv_linker_config handling existing output file\n\n`proto` sub command now fails when the output file exists.\nThis is to avoid accidental overwrite.\n\nTo handle the case properly, it support --force and --append.\n\nThis is to support amending /{partition}/etc/linker.config.pb in the\nbuild process.\n\nBug: 244531518\nTest: manual testing\nChange-Id: I0af8c83015e485f2c7533221cae8caf6143403c8\n"
    },
    {
      "commit": "6bc5e2cefa5c161300f8aadcbf760476a8368e4a",
      "tree": "36692518e3c647cf4b60e55b590ccbcae97f3cda",
      "parents": [
        "80ebd72995c61a0a9f1238eef18af49a335934b1",
        "b531beecd549d098c9672df72886d88165c4ffe3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Mar 06 18:36:10 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 06 18:36:10 2023 +0000"
      },
      "message": "Merge \"conv_linker_config proto works with empty input\""
    },
    {
      "commit": "b531beecd549d098c9672df72886d88165c4ffe3",
      "tree": "1c6969ff649a413eb51deb97abd27503fad35b74",
      "parents": [
        "aa3408a50648c6076d9cc3542523b01e83c11b28"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sat Mar 04 08:28:40 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Sat Mar 04 08:28:40 2023 +0900"
      },
      "message": "conv_linker_config proto works with empty input\n\nPRODUCT_VENDOR_LINKER_CONFIG_FRAGMENTS lists json files for vendor\nlinker config. It\u0027s annoying to handle the case of empty list.\n\n`proto` subcommand now works for empty input. This is useful to generate\nthe empty linker config.\n\nBug: 244531518\nTest: conv_linker_config proto --source --output output.pb\nChange-Id: Iec6de67a979814a818730c393d9a4a7ca5d2eebe\n"
    },
    {
      "commit": "93bca1585e2c208f3a705f9a302649a339e906f7",
      "tree": "9ade36d74b86cf846b3f8fc6fa87b4d29df17560",
      "parents": [
        "04a0ee54dee1d13fbff7f47842a6bc362a205baa",
        "40253904684adaf95dc9fcc17d8393cbdfd8d36c"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Fri Mar 03 15:12:28 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 03 15:12:28 2023 +0000"
      },
      "message": "Merge changes from topic \"java17-record-support\"\n\n* changes:\n  Allow java.lang.runtime in boot image\n  Emit record annotation\n"
    },
    {
      "commit": "442b6fc7010a3631535a6fbd81530aa5dbd8d207",
      "tree": "4afe5dbf8f012f5e7f772606d33a4de8cda481fc",
      "parents": [
        "ec992247d1b7fa8b753361411f777ffdab6d5219"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Mon Feb 27 23:41:55 2023 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Tue Feb 28 19:29:47 2023 -0800"
      },
      "message": "Remove OWNERS access for non-build team people to core build system\n\nTest: treehugger\nChange-Id: I0c318ddd7d78110327bbd849ed9aa3973c86de5d\n"
    },
    {
      "commit": "7c05d2d185fac5e781f30a6501cd42fcb190a3e1",
      "tree": "8f0fe873a4b87bfc6b403073512fb90e2c6d5bdb",
      "parents": [
        "c004bf3b7ed9d23d9e7aef69fe2d63d6478b2db3"
      ],
      "author": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Feb 20 17:27:18 2023 +0000"
      },
      "committer": {
        "name": "Victor Chang",
        "email": "vichang@google.com",
        "time": "Mon Feb 20 17:27:18 2023 +0000"
      },
      "message": "Allowlist java.lang.constant in libcore\n\nBug: 270028670\nTest: m droid\nChange-Id: I7612998fd518442defd5f9f00115e6a16e261b18\n"
    },
    {
      "commit": "40253904684adaf95dc9fcc17d8393cbdfd8d36c",
      "tree": "eeb2c0f45ec5407003c6958c183ee20e7510f0dc",
      "parents": [
        "cc9eee0af2c5168e6a3cf46bdd4f335e3dd01caf"
      ],
      "author": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Tue Sep 13 12:56:13 2022 +0100"
      },
      "committer": {
        "name": "Sorin Basca",
        "email": "sorinbasca@google.com",
        "time": "Fri Feb 10 07:31:51 2023 +0000"
      },
      "message": "Allow java.lang.runtime in boot image\n\nTest: m\nChange-Id: Icb208bb235f9c6ac97492c54c32a3174982756ae\n"
    },
    {
      "commit": "c6f4b532f3bd2a4d204fa059631907560e76ab5b",
      "tree": "44cffe17f0846ca579a0071cdad1f345eb945d2f",
      "parents": [
        "800f64078ccc52ab1ced951376e44fb24e61fcaa"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Thu Feb 02 13:22:26 2023 -0800"
      },
      "committer": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Wed Feb 08 12:38:50 2023 -0800"
      },
      "message": "Allow android tests to specify a mainline package name\n\nTests that run against mainline modules generally need to be built\ntwice: once for aosp (unsigned) and once for internal (signed).\nThe override_android_test rule is really useful for generating a\nsigned version of the unsigned test.\n\nHowever, mainline tests need to use a MainlineTestModuleController\nto only run tests on targets with the expected module. Since unsigned\nand signed mainline modules have different package names, this means\nthe test config needs to be updated when overriding a test.\n\nAdd a new \"mainline_package_name\" argument so that android test rules\ncan update the targeted mainline package. Without this, the only way\nto create a mainline package test is to instead use android_test, which\nresults in a lot of copy-pasta.\n\nTest: added tests to soong\nTest: manual, using a locally-modified RkpdAppUnitTest\nTest: test_config_fixer_test.py\nChange-Id: Idaffd63f225719a2bfda41018fda630b17db0080\n"
    },
    {
      "commit": "8b04d82ff1597be11e1459863da272ce9d902f2e",
      "tree": "d90b0af7af2856873f029438de116bc580ab5464",
      "parents": [
        "249998d290f7a004cdf2cee21a7042c754002f26"
      ],
      "author": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Fri Feb 03 11:42:46 2023 +0000"
      },
      "committer": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Fri Feb 03 11:42:46 2023 +0000"
      },
      "message": "Add jdk.internal.util.jar in the allowed package list.\n\nThis is part of OpenJDK17 update. sun.misc.JarIndex was moved to\njdk.internal.util.jar.\n\nBug: 260718199\nTest: m\nChange-Id: I7107f980d6afe500acff88164b1e6cb04cded896\n"
    },
    {
      "commit": "0f386bc12bc11ab76fc151ef06d00dd91478d4bb",
      "tree": "6456d03b25ff9b5104e3e3ee837622c8a242ee41",
      "parents": [
        "ee37e8e8ed84cfd495b76348c7ed7e210d0df60f"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 18 12:59:23 2023 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Jan 18 12:59:23 2023 +0000"
      },
      "message": "Allow obfuscated classes on bootclasspath\n\nPreviously, the signature_trie python library would reject classes\nwhich started with a lower case character which in turn caused the\nverify_overlaps tool to fail. That meant that it was impossible to\nadd obfuscated classes (which commonly used lower case characters\nfor their name) from being used on the bootclasspath.\n\nThis change removes that restriction and the accompanying test.\n\nBug: 265833521\nTest: TH and partner testing\nChange-Id: I70710484e427f64d79fb30301f3413f3b67b27e7\n"
    },
    {
      "commit": "014ccd4ef002f11109e1116fddff42f563273ba5",
      "tree": "099b3a0fda9c424733b12d09dfe0872137f274ff",
      "parents": [
        "939673bf6b81ae1af7f1e6985a72e24b06aa46ab"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Mon Jan 09 16:23:14 2023 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Mon Jan 09 16:26:53 2023 +0900"
      },
      "message": "conv_linker_config proto supports multiple input json files\n\nconv_linker_config proto -s input1.json:input2.json generates a merged\nproto output file.\n\nBug: 264330513\nTest: conv_linker_config proto -s input1.json:input2.json\nChange-Id: I4806fc606d115c42a1c745fba67960ce6db8c8d7\n"
    },
    {
      "commit": "648e32c341de23e1a9d5a2baf67c86660a4441c2",
      "tree": "3cda040d9a91435997c6e4c99c971650d27d58c5",
      "parents": [
        "94682b23c4e209491abd21b0353948e6614f45dd"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Thu Dec 15 14:36:03 2022 -0800"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Wed Jan 04 10:08:43 2023 -0800"
      },
      "message": "Run ckati step of the Android build tracing given variables\n\nTest: `m nothing \u0026\u0026 build/soong/scripts/run-ckati.sh FOO BAR`, see FOO\nand BAR assignments in out/ckati.trace\n\nChange-Id: Ife8bb6d716bfde5ee9f75b85b1e5738ab2238dce\n"
    },
    {
      "commit": "e17c31611a495a3afb85a7ad822f2b0d96478a58",
      "tree": "037b8ea545e2ef023abfae0aabf4f37c70b4f4b6",
      "parents": [
        "92c6c2b2efd01c54170765429a5fa78f067a7804"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Dec 12 17:37:20 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Dec 12 17:40:26 2022 +0000"
      },
      "message": "Fix deapexer usage in prebuilt_apex/apex_set\n\nA previous change to the deapexer script to check that blkid_path and\nfsckerofs_path were set broke the scripts/unpack-prebuilt-apex.sh\nscripts use of deapexer. This change fixes it by passing the paths\nthrough to the script which then passes it on to deapexer.\n\nBug: 255963179\nBug: 240288941\nBug: 259958590\nTest: m MODULE_BUILD_FROM_SOURCE\u003dfalse droid\nChange-Id: Ief7f36219b7fe1cf7104c08163e10d8e39f181d0\n"
    },
    {
      "commit": "2d61a7d005eb88cdaf9157b4bedf25d904a6fd4e",
      "tree": "4a1b7b4c87a43b7aaf218cf41cf42c9b3b7859d3",
      "parents": [
        "d6dec6f51ed27bd9d1f5a4c373b2fb97cf726c70"
      ],
      "author": {
        "name": "Jingwen Chen",
        "email": "jingwen@google.com",
        "time": "Thu Nov 03 10:38:12 2022 +0000"
      },
      "committer": {
        "name": "Jingwen Chen",
        "email": "jingwen@google.com",
        "time": "Mon Nov 07 08:38:01 2022 +0000"
      },
      "message": "bazel apex: clean up gen_ndk_usedby_apex.sh to work in bazel sandbox.\n\nThis script is responsible for generating \u003cmodule\u003e_using.txt, which is a\nfile containing all NDK symbols used by the shared libraries in an APEX.\n\nThis script doesn\u0027t work as-is in the bazel sandbox; namely it tries to\ncreate tmp directories in read only input dirs, for example:\n\n\"mkdir: cannot create directory \u0027bazel-out/android_target-fastbuild-ST-7fe6d3cd3905/bin/packages/modules/adb/apex/com.android.adbd_staging_dir/tmpUnzipped\u0027: Permission denied\"\n\nThe staging dir inputs are also symlinks, so the `find` call needs a new\n-L flag to follow symlinks.\n\nThis CL fixes that by using a tmpdir, and also refactors the script to\nbe less fragile.\n\nI\u0027m not a fan of the camelCase, but I\u0027ll save that for another change.\n\nTest: presubmits\nBug: 239081455\nBug: 257226023\nFixes: 257226023\nChange-Id: I1d0fe93c47c92d046e72c0ab32014a5dc8bbd597\n"
    },
    {
      "commit": "4d0b4df833b7f9e2e9de4fa6b4cda6aaa6c46d52",
      "tree": "650ee31a12a8927800068e11236bc939b1eaaa8d",
      "parents": [
        "f1e6126cb0856451791741c7af4f3c28fadfebf3"
      ],
      "author": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Tue Oct 18 20:53:11 2022 -0400"
      },
      "committer": {
        "name": "Chris Parsons",
        "email": "cparsons@google.com",
        "time": "Wed Oct 19 11:11:45 2022 -0400"
      },
      "message": "Add prebuilts/ to microfactory includes\n\nThis allows go sources under subdirectories of prebuilts/ to be\nreferencable by soong_ui and soong_build. Without this change,\nmicrofactory does not correctly include go libraries under prebuilts.\n\nTest: Conjunction with aosp/2260126\nChange-Id: I4cba6fb04d1e274af759fa92f9ae4b2e3ea18447\n"
    },
    {
      "commit": "f5410382aba9c4924718d51c5d36472944f330a2",
      "tree": "f4be7395c626f250baf94eb1665a0d9252ff2137",
      "parents": [
        "1eb582e0c927cbdad37a3616674fb87edc6f7731",
        "4fc6f4ee62157e562dd104560946385bd4baff8e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Sep 21 18:11:20 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 21 18:11:20 2022 +0000"
      },
      "message": "Merge \"Remove obsolete script for building unbundled Mainline targets.\""
    },
    {
      "commit": "4fc6f4ee62157e562dd104560946385bd4baff8e",
      "tree": "b9a5ca04c9f96499a932affaaa865c6d5958a84e",
      "parents": [
        "62b471ae7123c1e63378d2679667276065cec157"
      ],
      "author": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 21 11:46:20 2022 +0100"
      },
      "committer": {
        "name": "Martin Stjernholm",
        "email": "mast@google.com",
        "time": "Wed Sep 21 11:50:08 2022 +0100"
      },
      "message": "Remove obsolete script for building unbundled Mainline targets.\n\nThe supported scripts for doing that now live in\npackages/modules/common/build.\n\nTest: Check in CodeSearch that the script isn\u0027t actively used nor\n  mentioned in docs.\nBug: 180394948\nChange-Id: I787cbe469bec2121f89de7b74695484310b00b5e\n"
    },
    {
      "commit": "7113b19be803d54abca058b9d9384bee0625b206",
      "tree": "63d2b8654479083db9b6317f78330c90494335f9",
      "parents": [
        "b2dce1ae5ede592d2cdaf02987de7d6a7e35ebeb"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Tue Sep 20 17:00:27 2022 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Sep 21 13:27:49 2022 +0900"
      },
      "message": "Add a host tool to create an APEX bundle\n\nEven though the soong build system generates a bundle module for an\napex, the bundle module itself should be further processed to be an\nAppBundle (.aab) file which can be uploaded to Play.\n\nThis script fills the gap by invoking bundletool to create an\nAppBundle (.aab) file out of soong-built bundle module for an apex.\n(Note: uploading APEX bundle (.aab) to Play is not supported yet.)\n\nYou can create an .aab file by:\n- TARGET_BUILD_APPS\u003d{apex name} m dist\n- m build-apex-bundle\n- build-apex-bundle --output out.aab out/dist/{apex name}-base.zip\n\nFor now it creates a single-ABI APEX bundle. In the future it can be\nextended to support multiple-ABI APEX bundles.\n\nBug: 236673372\nTest: m build-apex-bundle\nTest: TARGET_BUILD_APPS\u003dcom.google.cf.bt m dist\nTest: build-apex-bundle --output bt.aab out/dist/com.google.cf.bt-base.zip\nChange-Id: Id321efcd42c0fe60294a8348047c9ebbf7acf391\n"
    },
    {
      "commit": "ef8d6a68f429d23158d21dd02d9ebe481ffb67c7",
      "tree": "9397126b73dc23f2d7c66544a54e1a6f5e579745",
      "parents": [
        "534b797cd79632b52a736f21edf3abb24a1c21ef"
      ],
      "author": {
        "name": "Krzysztof Kosiński",
        "email": "krzysio@google.com",
        "time": "Sun Sep 18 01:30:19 2022 +0000"
      },
      "committer": {
        "name": "Krzysztof Kosiński",
        "email": "krzysio@google.com",
        "time": "Sun Sep 18 01:30:19 2022 +0000"
      },
      "message": "Remove Python enables identical to global defaults.\n\nBug: 245854393\nTest: presubmit\nChange-Id: Ia99d3fc9f1626891d45c55d679f4d8a049f9e1e8\n"
    },
    {
      "commit": "bcc3d05aba2395290dddcaabe8980b334c9caa22",
      "tree": "96139e277f27a4d9a72723b88bb720b74c79c27a",
      "parents": [
        "6faa161557b84905ab07c9e586258687231f7d93"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Sep 01 15:20:00 2022 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Sep 01 15:20:00 2022 -0700"
      },
      "message": "Fix module-file name collisions\n\nBazel doesn\u0027t allow a module and file with the same name.\n\nBug: 198619163\nTest: Presubmits\nChange-Id: Ie9731b627945d2ff221d3a5d08a32a5a172f9dcd\n"
    },
    {
      "commit": "d079e0b2708ce0f4cce470db929f28dd8d2b0e80",
      "tree": "e8cdb4a59bd88411a262a1d91bd75def56cc4de2",
      "parents": [
        "852d0c48593fb2a17d301d7274edac907e8e194f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Aug 16 10:27:33 2022 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Aug 17 10:43:13 2022 -0700"
      },
      "message": "Reformat build/soong for go 1.19\n\nTest: none\nChange-Id: I132368f0fcbdb5ea088b5b84dbe4ccfdd9e94cad\n"
    },
    {
      "commit": "69cf0f375687f936c1832bc7c049e8b105304abb",
      "tree": "fcbaaa3321d663576df87006282e6616404a1759",
      "parents": [
        "950f28abe243ec7092face27681508480cc92293"
      ],
      "author": {
        "name": "Alexei Nicoara",
        "email": "ancr@google.com",
        "time": "Wed Jul 27 14:59:18 2022 +0100"
      },
      "committer": {
        "name": "Alexei Nicoara",
        "email": "ancr@google.com",
        "time": "Wed Aug 03 12:05:14 2022 +0100"
      },
      "message": "Overriding placeholder version in updatable apks\n\nTest: presubmit, checked the app version after build locally\nBug: 231691162\nChange-Id: Icd242432540ea424235b226a45aac839dbc995be\n"
    },
    {
      "commit": "50dbe0a07408bc1b16b1c19720d464a98e618f23",
      "tree": "99e9da328281ec4bbe934ad23c5c8fd389089bcb",
      "parents": [
        "ca53ed396cf030c3a15a5ac4825432165863e1fc",
        "5a082f9a3310a425115061578ed8955ff342ef56"
      ],
      "author": {
        "name": "William Loh",
        "email": "wloh@google.com",
        "time": "Thu Jul 14 00:20:35 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jul 14 00:20:35 2022 +0000"
      },
      "message": "Merge \"Propagate max_sdk_version to manifest_fixer\""
    },
    {
      "commit": "1e3d27821b5be4a018814b0edfee7ffce5499686",
      "tree": "fd3022255fa0efe2eace763d6b2eeb20e36a0a34",
      "parents": [
        "348b777b86a07945004148e1beb84fdc9a892770",
        "d887e242604d99cc87047ca524a3dc73d7f439a3"
      ],
      "author": {
        "name": "Alexei Nicoara",
        "email": "ancr@google.com",
        "time": "Tue Jul 12 13:07:28 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 12 13:07:28 2022 +0000"
      },
      "message": "Merge changes Ibcf908d9,I786ab152\n\n* changes:\n  Cleaning up the version sed rule\n  Adding support to conditionally replace a value\n"
    },
    {
      "commit": "7d69b1d8e664e15bb891149384a18a5c715cc0f3",
      "tree": "bf6f0b652987ae6254d034ededab25fbfc3e2c65",
      "parents": [
        "2971a94e4c6128bb147f38c25f82b3e6159a516f"
      ],
      "author": {
        "name": "Alexei Nicoara",
        "email": "ancr@google.com",
        "time": "Mon Jul 11 12:38:50 2022 +0100"
      },
      "committer": {
        "name": "Alexei Nicoara",
        "email": "ancr@google.com",
        "time": "Tue Jul 12 11:53:07 2022 +0100"
      },
      "message": "Adding support to conditionally replace a value\n\nBug: 231691643\nTest: presubmit\nChange-Id: I786ab152a94126ebc8a9d7dea0bb68e07d789a0b\n"
    },
    {
      "commit": "6b773a97b8498ec4337cce135e7de4ed8ba08787",
      "tree": "b391f7bfa7636bee8650941a11c4eb08cf4bb4cd",
      "parents": [
        "83222003728c9dc19da91b4b58a92269c7f44570",
        "4e86b5e07acd44b04f47e2dcbf3918859d66ccb0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jul 11 18:42:42 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jul 11 18:42:42 2022 +0000"
      },
      "message": "Merge \"Make ‘rustfmt.toml’ available for other modules\""
    },
    {
      "commit": "18b7a2e8a242a7b8fab59fb3ac3b57902d9e6e4f",
      "tree": "529ffab1e56b8fba0e9c47938718fbb64aa71a16",
      "parents": [
        "01365d58907a367ec39154801fb47537d1e449c2"
      ],
      "author": {
        "name": "Wei Li",
        "email": "weiwli@google.com",
        "time": "Fri Jul 08 19:09:06 2022 -0700"
      },
      "committer": {
        "name": "Wei Li",
        "email": "weiwli@google.com",
        "time": "Fri Jul 08 19:14:01 2022 -0700"
      },
      "message": "JSON format doesn\u0027t support comments, so a JSONWithCommentsDecoder is added to support line comments start with // that used in apex_manifest.json files. This fixes the CI errors reported in b/238399517.\n\nBug: 238399517\nTest: build/bazel/ci/bp2build.sh\nChange-Id: Iaa3c2ab319eb7a52cbedaddd057646fc089d745a\n"
    },
    {
      "commit": "4e86b5e07acd44b04f47e2dcbf3918859d66ccb0",
      "tree": "8812a4b41dd96e41c6339ebb9ae4fcd9813d56eb",
      "parents": [
        "4d2f767217c80a31fb69dbb85b8e9eb8872ba313"
      ],
      "author": {
        "name": "Martin Geisler",
        "email": "mgeisler@google.com",
        "time": "Fri May 13 16:01:35 2022 +0200"
      },
      "committer": {
        "name": "Martin Geisler",
        "email": "mgeisler@google.com",
        "time": "Mon Jul 04 08:35:44 2022 +0000"
      },
      "message": "Make ‘rustfmt.toml’ available for other modules\n\nWe need the config file to ensure consistent output when running\ntests.\n\nBug: 237977382\nTest: manual\nChange-Id: Ib19d4b739305a5cbed94a40908d76dbbeec67fe5\n"
    },
    {
      "commit": "5a082f9a3310a425115061578ed8955ff342ef56",
      "tree": "ca0ed9c72c744035e289b862697798a2f46ffac9",
      "parents": [
        "78ce8c23def25e30fba5e2cdb124ad3f0409751c"
      ],
      "author": {
        "name": "William Loh",
        "email": "wloh@google.com",
        "time": "Tue May 17 20:21:50 2022 +0000"
      },
      "committer": {
        "name": "William Loh",
        "email": "wloh@google.com",
        "time": "Tue Jun 28 22:07:23 2022 +0000"
      },
      "message": "Propagate max_sdk_version to manifest_fixer\n\nIf max_sdk_version is included in Android.bp that value will now be\npropagated to manifest_fixer.py. This value will then be used to\noverride any maxSdkVersion attribute set on permission or\nuses-permission tags in the android manifest if maxSdkVersion\u003d\"-1\".\n\nBug: 223902327\nTest: add max_sdk_version to Android.bp for test app\nTest: create permission in test app manifest with maxSdkVersion\u003d\"-1\"\nTest: run test to check maxSdkVersion\u003dmax_sdk_version\nChange-Id: Ic533ef2a41b9ecc9ee68c69399026df47ee945b7\n"
    },
    {
      "commit": "802b0594170e15a6741e5a1fb2a3900333ffc61c",
      "tree": "47b45c15cfc710d971fdcb4f53daf047d6af7d63",
      "parents": [
        "6ba1a7d66149d2a6ecf885f47a289e6808fd62ae",
        "c68b289125dd187ebeb7a158c13c6e805bb8b3bd"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 13 22:21:40 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 13 22:21:40 2022 +0000"
      },
      "message": "Merge \"Revert \"manifest_check.py: add uses-libraries propagaged via dex...\"\""
    },
    {
      "commit": "c68b289125dd187ebeb7a158c13c6e805bb8b3bd",
      "tree": "544fd78c34bf5119e468668f3236a343e208621d",
      "parents": [
        "24abbe85d1f2aae1d7fc9b42c35f9bb28c0a1bb2"
      ],
      "author": {
        "name": "Ulya Trofimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 13 09:04:49 2022 +0000"
      },
      "committer": {
        "name": "Ulya Trofimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 13 09:06:44 2022 +0000"
      },
      "message": "Revert \"manifest_check.py: add uses-libraries propagaged via dex...\"\n\nReason for revert: performance regression on AppStartup.\nReverted Changes:\nI6522319a8:Dexpreopt: prepare to merge class loader context f...\nIc8528dffd:manifest_check.py: add uses-libraries propagaged v...\n\nBug: 235304939\nBug: 214255490\nChange-Id: I054df19dbddb4897d07d74e51d7b651dfae85fbe\n"
    },
    {
      "commit": "e0862867d9f8bd83d84bc7c714c7c4235f563080",
      "tree": "b149b1d7aea4173991c879d268e38b77419d8d49",
      "parents": [
        "dcec8e067bf4d7598fdd37d794bcaa7afa963657",
        "24abbe85d1f2aae1d7fc9b42c35f9bb28c0a1bb2"
      ],
      "author": {
        "name": "Ulya Trofimovich",
        "email": "skvadrik@google.com",
        "time": "Mon Jun 06 12:50:34 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 06 12:50:34 2022 +0000"
      },
      "message": "Merge \"manifest_check.py: add uses-libraries propagaged via dexpreopt.config.\""
    },
    {
      "commit": "24abbe85d1f2aae1d7fc9b42c35f9bb28c0a1bb2",
      "tree": "ded3bee6a6445e13fb5cf9e8ea8411b7e336f842",
      "parents": [
        "f5d91bb3b4cb907a4fbcd1ea6cf36b9d1a3094ed"
      ],
      "author": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Thu Apr 28 12:50:47 2022 +0100"
      },
      "committer": {
        "name": "Ulya Trafimovich",
        "email": "skvadrik@google.com",
        "time": "Tue May 24 16:19:13 2022 +0100"
      },
      "message": "manifest_check.py: add uses-libraries propagaged via dexpreopt.config.\n\nSome of the uses-libraries in the manifest are propagated from\ndependencies (which are not necessarily uses-libraries themselves).\nIn makefiles this has to be done via dexpreopt.config files to ensure\ntopological order. This patch makes manifest_check.py add such\npropagated entries before doing the check (as it might otherwise fail).\n\nAlso, the patch adds deduplication of added library entries.\n\nBug: 214255490\nTest: lunch aosp_cf_x86_64_phone-userdebug \u0026\u0026 m \u0026\u0026 launch_cvd \\\n    \u0026\u0026 adb wait-for-device \u0026\u0026 adb root \\\n    \u0026\u0026 adb logcat | grep -E \u0027ClassLoaderContext [a-z ]+ mismatch\u0027\n    # a few unrelated errors caused by missing optional uses-libraries\n    #   android.net.ipsec.ike\n    #   androidx.window.extensions\n    #   androidx.window.sidecar\n    # that were present before this patch\nChange-Id: Ic8528dffd47fa5818b38b912cd6b606855480e33\n"
    },
    {
      "commit": "74cead891eef1210b546808487c47e697d6151cf",
      "tree": "14087ecb2ad968bafe4c720d05102b8cf1176dc0",
      "parents": [
        "958c957696e1b1570c9f5feba705577baaa75c54"
      ],
      "author": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Wed May 04 12:28:59 2022 +0000"
      },
      "committer": {
        "name": "Artur Satayev",
        "email": "satayev@google.com",
        "time": "Fri May 06 08:59:39 2022 +0000"
      },
      "message": "Add support to max-target-s to generate_hiddenapi_lists\n\nTest: make\nBug: 169748350\nChange-Id: I2662a643a190ed531d85755d01e1be9c49c02e25\nMerged-In: I2662a643a190ed531d85755d01e1be9c49c02e25\n"
    },
    {
      "commit": "93b542459a31e8699d54679ec7498a2f9bef2d33",
      "tree": "fcf6479a6e90192cb5c2e64a83245f534e9325d4",
      "parents": [
        "ad0ec2ae1fd532de3fb03d352cae305118fb77f2"
      ],
      "author": {
        "name": "Ge Bian",
        "email": "bian@google.com",
        "time": "Tue May 03 20:41:53 2022 +0000"
      },
      "committer": {
        "name": "Ge Bian",
        "email": "bian@google.com",
        "time": "Tue May 03 20:41:53 2022 +0000"
      },
      "message": "Revert \"Add support to max-target-s to generate_hiddenapi_lists\"\n\nRevert submission 1931011-max-target-s\n\nReason for revert: Seems to cause build breakage\nReverted Changes:\nI2b513f93a:Add support to max-target-s to generate_hiddenapi_...\nIfdd7b7a71:Add support for max-target-s\nI06d05840e:Add support for max-target-s\n\nChange-Id: I67413a3deda42c503b876727377e932f7e4652e9\n"
    },
    {
      "commit": "ad0ec2ae1fd532de3fb03d352cae305118fb77f2",
      "tree": "4c6ed5bf1c8410d9ffab335c26f30d808569c029",
      "parents": [
        "09817d66dea3639528b35a5b61ddce78766d198c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jan 18 11:03:26 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 28 18:34:58 2022 +0100"
      },
      "message": "Add support to max-target-s to generate_hiddenapi_lists\n\nTest: make\nBug: 169748350\nChange-Id: I2b513f93a509bc1163b114d399895cbe9486817e\n"
    },
    {
      "commit": "7436a7121f03ccf449cad3cd2ce22955f176360d",
      "tree": "6cce3376a1352c58620bed8d04ebfb8c0676ec60",
      "parents": [
        "b2d87ef0bd167ccb4d0544b89bcf7b1c89d427e0",
        "48a8f0d10b1d1b70c8e320d6489c58ab9b189fae"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 22 07:12:45 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 22 07:12:45 2022 +0000"
      },
      "message": "Merge \"Updates test_config_fixer to also work for SuiteApkInstaller\""
    },
    {
      "commit": "fe118510297de80d59b2bf41d8b93582416b883d",
      "tree": "87c17df2c6086dc1f0c3a7dc076252635525f019",
      "parents": [
        "e212bcdcf5955758538fd4b4eff18f3cb3d09951"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Wed Mar 30 20:33:09 2022 -0700"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Wed Apr 20 20:02:11 2022 -0700"
      },
      "message": "Recursively list Android image contents.\n\nRelies on debugfs utility to inspect image contents.\nThe output looks something like this:\n```\n./\n./app/\n./app/Calendar/\n./app/Calendar/Calendar.apk\n```\n\nTest: manual\nChange-Id: Ia05f4e857dfd28ac76ac2b450b08f5cf5577d21f\n"
    },
    {
      "commit": "48a8f0d10b1d1b70c8e320d6489c58ab9b189fae",
      "tree": "cc4120cf8f8928e00a4b68f5f528d109529c39f1",
      "parents": [
        "43c2dcaef609c4a268bfab6c95ed924af4ead6b1"
      ],
      "author": {
        "name": "Rahul Sabnis",
        "email": "rahulsabnis@google.com",
        "time": "Tue Apr 19 18:00:10 2022 -0700"
      },
      "committer": {
        "name": "Rahul Sabnis",
        "email": "rahulsabnis@google.com",
        "time": "Wed Apr 20 10:36:58 2022 -0700"
      },
      "message": "Updates test_config_fixer to also work for SuiteApkInstaller\n\nBug: 228385580\nTest: atest BluetoothInstrumentationTests\nMerged-In: I878309354c4aa5a492fb3d2bcecf8b1410e011ee\nChange-Id: I878309354c4aa5a492fb3d2bcecf8b1410e011ee\n"
    },
    {
      "commit": "bd88c882f6fe4d495c34eab6735d9f36fbd6514d",
      "tree": "d7f8ab795aa08d4c1ba665e0c4e5e6e2678ce09f",
      "parents": [
        "c21015a0def1b887e070902ee10987343117390c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Apr 07 23:32:19 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Apr 12 17:44:15 2022 +0100"
      },
      "message": "Remove implementation details from stub flags in sdk snapshot\n\nPreviously, the build applied the same filtering to remove\nimplementation details from the sdk snapshot\u0027s stub-flags.csv file as\nit did for its all-flags.csv, i.e. removing the signatures that only\nhad a \"blocked\" flag. Unfortunately, that had no effect on the stub\nflags as the implementation signatures had no flags, not a single\nblocked flag. That meant that the sdk snapshot\u0027s\nfiltered-stub-flags.csv file contained a lot of implementation details.\n\nThis change removes signatures from stub-flags.csv that have no flags\nwhich removes all implementation details from the sdk snapshot.\n\nBug: 194063708\nTest: atest --host verify_overlaps_test\n      m out/soong/hiddenapi/hiddenapi-flags.csv\n      m art-module-sdk\n      # Check contents of its filtered-stub-flags.csv file\nChange-Id: I30edc77348fad118ea732e787ae8e206c8841f84\n"
    },
    {
      "commit": "0c12b78ae808804a7fc96446af684ebd6a2307c5",
      "tree": "c29752e5015d38b42b9e94f83b891065ae67c29e",
      "parents": [
        "181b56cf4d42b3b41046af2f43b96d3863b72f50"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 08 00:28:11 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 08 10:56:21 2022 +0100"
      },
      "message": "Use named options for verify_overlaps\n\nPreviously, verify_overlaps used positional arguments, the first was\nthe monolithi flags and the rest were the module flag pairs (filtered\nflags file and signature patterns file). This change makes them use\nnamed options to make the purpose of the arguments clearer on the\ncommand line.\n\nBug: 194063708\nTest: atest --host verify_overlaps_test\n      m out/soong/hiddenapi/hiddenapi-flags.csv\nChange-Id: Ife0af0016eb0f91416e8330d5d98cb53c97d68a4\n"
    },
    {
      "commit": "181b56cf4d42b3b41046af2f43b96d3863b72f50",
      "tree": "ecc5ac5024d1eeee25a01a6d53a58e44a89aca43",
      "parents": [
        "70b9a7e4932404e7d906a81d90943781598e444a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 08 00:03:32 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 08 10:49:24 2022 +0100"
      },
      "message": "Cleanup verify_overlaps*.py\n\nFix issues reported by pylint, Intellij Python checks and also try and\nadhere to the Google Python Style Guide.\n\nBug: 194063708\nTest: atest --host verify_overlaps_test\n      m out/soong/hiddenapi/hiddenapi-flags.csv\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/verify_overlaps*.py\n      pyformat -s 4 --force_quote_type single -i scripts/hiddenapi/verify_overlaps*.py\nChange-Id: I6273456abc3a4da4af780ae1a0473ca63521dff5\n"
    },
    {
      "commit": "b99d480e1dd51dddbc370441e2c0752785bd1144",
      "tree": "985c7062ad0ed12834fd06aeb6f8a569f7f1f922",
      "parents": [
        "ea836c2baf32469b90ac421b22cbf69d230334af"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Apr 04 11:26:45 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Apr 04 18:24:40 2022 +0100"
      },
      "message": "analyze_bcpf: Explain why a package is split/single\n\nPreviously, the script would determine whether a package was split,\nsingle or could be used as a prefix but did not explain why. This\nchange provides additional information to explain why they are split.\n\nBug: 202154151\nTest: m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment\n      m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment --fix\n      atest --host analyze_bcpf_test\nChange-Id: I3e2d5c0b54b5cc028013ce5ea979ebd9b9bf2c0d\n"
    },
    {
      "commit": "ea836c2baf32469b90ac421b22cbf69d230334af",
      "tree": "4efc3027939a1502fe2bcf5022fcc6276e3012cb",
      "parents": [
        "dbbb8374a2c2dea5093041f77579c3994473515a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Apr 04 16:59:36 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Apr 04 16:59:36 2022 +0100"
      },
      "message": "analyze_bcpf: Indent multi-line text to improve formatting\n\nAddresses a comment on the review of the initial changes to add\nanalyze_bcpf script.\n\nBug: 202154151\nTest: m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment\n      m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment --fix\n      atest --host analyze_bcpf_test\nChange-Id: I8c030dcc1a29f106ca57dca8c97a5cb4425e7674\n"
    },
    {
      "commit": "dbbb8374a2c2dea5093041f77579c3994473515a",
      "tree": "227e4bae4cbb9e8227ab5fe024e87b3bf1888007",
      "parents": [
        "3aae38d451e44d7f12224e938456dfb2fd665ac5"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 01 15:04:23 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Apr 01 15:04:23 2022 +0100"
      },
      "message": "signature_trie: Avoid unnecessary wrapping and unwrapping of values\n\nPreviously, Leaf.values() and Leaf.append_values() would wrap the\nLeaf\u0027s value inside a list before appending it to the list of values.\nSo, the values list was actually a list of lists of values. The\nget_matching_rows method would then use chain.from_iterable() to\nflatten that list of list of values into a list of values.\n\nThis change removes the initial wrapping in a list and so removes the\nneed to flatten them into a single list. It also adds a test for the\nvalues() method. Prior to this change the expected value would have\nbeen [[1], [\"A\"], [{}]].\n\nBug: 202154151\nTest: atest --host analyze_bcpf_test signature_trie_test verify_overlaps_test\nChange-Id: Ida78500c9ab4466de127b2c36501b3606d0f3fe5\n"
    },
    {
      "commit": "de6a087d2d289bf01097c152a349a33ea8fa91f8",
      "tree": "4079641b569115f02ddd9ae9be2921e1a5178275",
      "parents": [
        "77807b3c277723161a193aea2a9df1e464448c3d"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Apr 01 18:00:00 2022 +0000"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Apr 01 18:00:00 2022 +0000"
      },
      "message": "Revert \"Revert \"Build notice files from license metadata.\"\"\n\nThis reverts commit 77807b3c277723161a193aea2a9df1e464448c3d.\n\nReason for revert: fix and roll forward again\n\nChange-Id: I80c796ca81ecf29df9522babe54d684a0d11b9e6\n"
    },
    {
      "commit": "77807b3c277723161a193aea2a9df1e464448c3d",
      "tree": "aa4308c05738ee38894901471f83e52c11746ba8",
      "parents": [
        "2a5c090c31bf6152f9e5954273c06cd34a21092e"
      ],
      "author": {
        "name": "Wei Sheng Shih",
        "email": "wilsonshih@google.com",
        "time": "Fri Apr 01 02:05:36 2022 +0000"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Apr 01 14:10:53 2022 +0000"
      },
      "message": "Revert \"Build notice files from license metadata.\"\n\nThis reverts commit 43c2dcaef609c4a268bfab6c95ed924af4ead6b1.\n\nReason for revert: suspect build break\n\nBug: 227682036\n\nTest: TARGET_BUILD_VARIANT\u003duserdebug UNBUNDLED_BUILD_SDKS_FROM_SOURCE\u003dtrue vendor/google/build/mainline_modules_bundles.sh -j97\n\n\nChange-Id: Ibfb8b4fefc264f52f32ba661c269a9cd625d800a\n"
    },
    {
      "commit": "43c2dcaef609c4a268bfab6c95ed924af4ead6b1",
      "tree": "2f0d97c212ea52075fcb75075368e033db743864",
      "parents": [
        "76ff96f88584282e89c7d5f8f2e73a35710ab358"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Tue Mar 29 14:43:28 2022 -0700"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Thu Mar 31 17:29:01 2022 +0000"
      },
      "message": "Build notice files from license metadata.\n\nSwitch from generate-notice-files.py and mergenotice.py to htmlnotice.\n\nBug: 151177513\nBug: 213388645\nBug: 210912771\n\nTest: m droid dist reportmissinglicenses\nChange-Id: I6cac049d24f35ec358c6f341a04f4ba6161703bf\n"
    },
    {
      "commit": "91dac89447f2c2c1fff6eb9c0abc0ffe78a7f4f8",
      "tree": "3591f1c13f178efb832200159ec5d0060c98014f",
      "parents": [
        "71350eaff24fc80330062134a5f26856be3db0f1",
        "dd97fd25200f76e1f7f6b89726700684c0ce31bc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 30 20:00:43 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 20:00:43 2022 +0000"
      },
      "message": "Merge \"analyze_bcpf: Compute hidden_api package properties\""
    },
    {
      "commit": "71350eaff24fc80330062134a5f26856be3db0f1",
      "tree": "27003a080f16419772263b2bf7909e38a02ed033",
      "parents": [
        "26f19919ea18af240a2ec8783779fa88c96278e2",
        "d9932ad053beae4a6313f17b6ac6fcc606ec4f8b"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Wed Mar 30 19:43:06 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 30 19:43:06 2022 +0000"
      },
      "message": "Merge \"Always build mk2rbc/rbcrun\""
    },
    {
      "commit": "dd97fd25200f76e1f7f6b89726700684c0ce31bc",
      "tree": "fee1491220b1a072be305c48f081536d4e32d4fc",
      "parents": [
        "26f19919ea18af240a2ec8783779fa88c96278e2"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 28 19:22:12 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 30 16:00:08 2022 +0100"
      },
      "message": "analyze_bcpf: Compute hidden_api package properties\n\nAnalyzes the signatures of the class members contained within the\nbootclasspath_fragment to construct the split_packages,\nsingle_packages and package_prefixes hidden_api properties that are\nnecessary to remove the internal implementation details from the\nhidden API flags.\n\nBug: 202154151\nTest: m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment\n      m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment --fix\n      m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf com.android.mediaprovider-bootclasspath-fragment --fix\n      atest --host analyze_bcpf_test\nChange-Id: I4a8e5a8bfee2a44775e714b9226cd4a7382e0123\n"
    },
    {
      "commit": "26f19919ea18af240a2ec8783779fa88c96278e2",
      "tree": "48538513c1f911e88bb9da9f33d47cd945beed94",
      "parents": [
        "4dcf65951b307ec6fda6c90d1e494d6b375161ff"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Mar 28 16:09:27 2022 +0100"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 30 16:00:08 2022 +0100"
      },
      "message": "analyze_bcpf: Add --fix option\n\nAdd a --fix option that will cause the script to automatically fix the\nissues that it finds. It uses the bpmodify tool to add values to the\nbootclasspath_fragment\u0027s hidden_api properties.\n\nThis adds analyze_bcpf to bp2buildModuleDoNotConvertList as\nanalyze_bcpf depends on bpmodify which is a blueprint_go_binary which\nis not yet supported by bazel.\n\nBug: 202154151\nTest: m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment\n      m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment --fix\n      atest --host analyze_bcpf_test\n\nChange-Id: I5ee52419b4829474f6dbeb47f86ab2aeb22b1382\n"
    },
    {
      "commit": "4dcf65951b307ec6fda6c90d1e494d6b375161ff",
      "tree": "6572265407e352bb99c5da7668f81f48b9f1266a",
      "parents": [
        "0f2a718ce47bb2480e34f4a0e0e373ce16ae7148"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 28 19:22:12 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 30 12:18:56 2022 +0100"
      },
      "message": "Add analyze_bcpf.py script to help manage bootclasspath_fragments\n\nThe analyze_bcpf.py script can be used by bootclasspath_fragment owners\nto help setup their fragment and also to debug issues that arise during\nuse.\n\nIt is run by specifying the name of the bootclasspath_fragment module\nin the --bcpf option. If specified the --apex and --sdk options will\nallow the tool to produce more helpful messages.\n\nThe script currently:\n* Builds out/soong/hiddenapi/hiddenapi-stub-flags.txt and checks any\n  inconsistencies between those flags and the flags generated for the\n  bootclasspath_fragment.\n\n* Builds out/soong/hiddenapi/hiddenapi-flags.csv and checks any\n  inconsistencies between those flags and the flags generated for the\n  bootclasspath_fragment. It will describe the changes that need to\n  be made in order to fix any inconsistencies in the flags.\n\nBug: 202154151\nTest: m analyze_bcpf \u0026\u0026 analyze_bcpf --bcpf art-bootclasspath-fragment\n      atest --host analyze_bcpf_test\nChange-Id: I824fd9d527d246dfe56725c073d89a0b0e72d25a\n"
    },
    {
      "commit": "d9932ad053beae4a6313f17b6ac6fcc606ec4f8b",
      "tree": "5b73330aec9d79ae77081bc19e5696c03848038a",
      "parents": [
        "4242115d59289791600d42fbc62eade3a1b40519"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Thu Mar 24 17:27:41 2022 -0700"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Tue Mar 29 14:55:17 2022 -0700"
      },
      "message": "Always build mk2rbc/rbcrun\n\nCurrently, mk2rbc/rbcrun aren\u0027t built in certain phases\nof the build, which causes the Starlark product configuration\nto fail when using get_build_var if a regular build hasn\u0027t\nbeen run before.\n\nBug: 226677850\nTest: Manually\nChange-Id: If85608eef63be25fddc4d916c82247c13eb0195f\n"
    },
    {
      "commit": "1df464a90b0f58a9d2baceec656c48ec7f6453e9",
      "tree": "b4def10988ce8df06bf8b6acc804eaef203fb027",
      "parents": [
        "b3a3a2893be440da609db17ef0a93ebf0fcc30bd"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Mon Mar 28 09:44:33 2022 +0000"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Mon Mar 28 09:44:33 2022 +0000"
      },
      "message": "Revert \"Add a tool to list contents of .img file\"\n\nRevert submission 2041990-microdroid-contents\n\nReason for revert: b/227144320 (broken build)\nReverted Changes:\nIe2f471d39:Add the golden list of microdroid contents\nI7c4fca184:Add a tool to list contents of .img file\n\nChange-Id: If2b5d6cb1325cb17ef2bdc4f13ded003ab2dd6d7\n"
    },
    {
      "commit": "b3a3a2893be440da609db17ef0a93ebf0fcc30bd",
      "tree": "4c311c9bc530d3367d21df34f03108122f124a34",
      "parents": [
        "ad40fffa644ada1c0113b9de18bdaa2bb1e1490f"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Fri Mar 25 02:18:18 2022 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Fri Mar 25 02:44:36 2022 +0900"
      },
      "message": "Add a tool to list contents of .img file\n\nlist_image \u003cimg\u003e lists the contents of the file.\n\nFor example:\n  $ m microdroid\n  $ list_image \u003cpath to microdroid.img\u003e\n  ./\n  ./apex/\n  ./bin\n  ..\n\nBug: 195425111\nBug: 225121718\nTest: list_image .img\nChange-Id: I7c4fca184751ba20066fd25fa4c366a955dbabf6\n"
    },
    {
      "commit": "846beb7f5442041d7e47cdfeceb65d3f1fd7329c",
      "tree": "819e2c7fae72b7dbe4f7f66bf69d3b96626b5f2d",
      "parents": [
        "2d6e6a13380284c94122b97ded26c0d80a31ac47"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 15 17:45:57 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Fri Mar 18 10:54:51 2022 +0000"
      },
      "message": "Make bootclasspath_fragment hidden API package checks exhaustive\n\nPreviously, the bootclasspath_fragment\u0027s hidden_api.split_packages and\nhidden_api.package_prefixes properties did not specify an exhaustive\nset of packages that were provided by the fragment. They excluded\npackages which were either not split or which could not be used as a\npackage prefix because it would match sub-packages provided by other\nbootclasspath modules.\n\nThis change adds the hidden_api.single_packages list to specify those\nadditional packages and then uses that information to verify that any\nbootclasspath_fragment that specifies at least one of split_packages,\nsingle_packages or package_prefixes properties only contains classes\nfrom a package that matches one of those properties. That will\nprevent a module from accidentally including unexpected classes, such\nas might happen when statically including a common utility library.\n\nIt also adds coverage specific versions of the properties as additional\npackages are added to the art-bootclasspath-fragment when building\ncoverage builds.\n\nBug: 194063708\nTest: atest signature_patterns_test\n      m out/soong/hiddenapi/hiddenapi-flags.csv\n      m EMMA_INSTRUMENT\u003dtrue EMMA_INSTRUMENT_FRAMEWORK\u003dtrue out/soong/hiddenapi/hiddenapi-flags.csv\n      # Breaks without corresponding change to add android.system to\n      # the art-bootclasspath-fragment.\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/signature_patterns*.py\n      pyformat -s 4 --force_quote_type single -i scripts/hiddenapi/signature_patterns*.py\nChange-Id: Iddf6c59cd4dc8c36dde7943a9840ccef5794b320\n"
    },
    {
      "commit": "1024f1d72ba11d99d5e9cd15bae7382eef5c8f9f",
      "tree": "08a381ce287d382e152c8bf7bc70d74bf7dbaeec",
      "parents": [
        "143b8d4eb1b8dfcf6e2ee7c5393abb05ee7670b9"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 15 17:45:57 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Mar 17 10:36:29 2022 +0000"
      },
      "message": "Cleanup signature_patterns*.py\n\nFix issues reported by pylint, Intellij Python checks and also try and\nadhere to the Google Python Style Guide.\n\nBug: 194063708\nTest: atest signature_patterns_test\n      m out/soong/hiddenapi/hiddenapi-flags.csv\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/signature_patterns*.py\n      pyformat -s 4 --force_quote_type single -i scripts/hiddenapi/signature_patterns*.py\nChange-Id: I64d64e9cb269f58d65f4e10ec2f0e874154919e6\n"
    },
    {
      "commit": "92532e72a170c8ac2395d9a1485c414c8b4b4ddc",
      "tree": "6c565d859fb81d120ae093a4536c1107bbd7a4a6",
      "parents": [
        "ea93542e9007eba1eb04a6f3da7f344596b9967e"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 09 14:28:34 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 15 15:33:51 2022 +0000"
      },
      "message": "Allow traversal over the trie structure\n\nPreviously, there was no way to traverse the trie structure and no way\nto identify specific nodes in the trie. That made it impossible to\nanalyze the trie structure resulting from loading a set of flags. This\nchange adds type and selector properties to nodes as well as access to\nthe child nodes of a node to allow for the structure to be analyzed.\n\nBug: 202154151\nTest: m out/soong/hiddenapi/hiddenapi-flags.csv\n      atest --host signature_trie_test verify_overlaps_test\n      pyformat -s 4 --force_quote_type double -i scripts/hiddenapi/signature_trie*\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/signature_trie*\nChange-Id: Ia4714dbf59f6fd143aa3bf3ad1a59cd073d2175b\n"
    },
    {
      "commit": "ea93542e9007eba1eb04a6f3da7f344596b9967e",
      "tree": "0649f3eda3f892b69a78c3959f98db0feda0fcec",
      "parents": [
        "19255f1d9149324cc07c3b8e3910f486410dd5e8"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 09 14:51:17 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 15 15:16:04 2022 +0000"
      },
      "message": "Switch signature_to_elements to use tuple\n\nPreviously, it used a structured string of format \u003ctype\u003e:\u003cvalue\u003e. A\ntuple is more efficient and less prone to edge cases, such as when the\nvalue is a field signature which itself contains a \":\".\n\nBug: 202154151\nTest: m out/soong/hiddenapi/hiddenapi-flags.csv\n      atest --host signature_trie_test verify_overlaps_test\n      pyformat -s 4 --force_quote_type double -i scripts/hiddenapi/signature_trie*\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/signature_trie*\nChange-Id: I80abaff243d98aad325df1b5a655bba7f9d04e2c\n"
    },
    {
      "commit": "19255f1d9149324cc07c3b8e3910f486410dd5e8",
      "tree": "0cf077b35d9fd3ce5ff758ef56ff32752b9eadaa",
      "parents": [
        "b6a55c53e73e1a43aa9f79d7e759530a893e4f4c"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 08 16:35:52 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 15 15:16:04 2022 +0000"
      },
      "message": "Make signature_to_elements stricter and more consistent\n\nPreviously, signature_to_elements would return a string array where\nnon-wildcard strings were of the form \u003ctype\u003e:\u003cvalue\u003e but wildcard\nstrings were just * or **. This change makes it handle wildcards\nconsistently with the other element types and adds some extra\nchecking for edge cases.\n\nBug: 202154151\nTest: m out/soong/hiddenapi/hiddenapi-flags.csv\n      atest --host signature_trie_test verify_overlaps_test\n      pyformat -s 4 --force_quote_type double -i scripts/hiddenapi/signature_trie*\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/signature_trie*\nChange-Id: I5bfaf5e75c7da54b6241f68e03231939c9d65501\n"
    },
    {
      "commit": "1f8a6b2f274906f95c851d62ee0545683460d58a",
      "tree": "ee44c840b33e7ea4c06ffbc5bf3d65a5ea0d1120",
      "parents": [
        "b5cd52205367d6f5eb21c6a24889c7961ff6d602"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Mar 08 16:31:55 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 09 15:43:57 2022 +0000"
      },
      "message": "Extract Node superclass of Leaf and InteriorNode\n\nAdds a Node superclass to declare and documented the methods that need\nto be implemented by Leaf and InteriorNode. Also uses @dataclasses to\nmake it easy to declare and document the properties of each class.\n\nThis refactoring is in preparation for future changes that will need to\nadd common behavior to both Leaf and InteriorNode so having a\nsuperclass will make that easier.\n\nBug: 202154151\nTest: m out/soong/hiddenapi/hiddenapi-flags.csv\n      atest --host signature_trie_test verify_overlaps_test\n      pyformat -s 4 --force_quote_type double -i scripts/hiddenapi/signature_trie*\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/signature_trie*\nChange-Id: If660855f6b1f45a8ea5b90b3cc0236da9e07d090\n"
    },
    {
      "commit": "b5cd52205367d6f5eb21c6a24889c7961ff6d602",
      "tree": "56b0419ad2666f4cb82ce2f48d0d02ee053b6060",
      "parents": [
        "5ffb223ebbe1c60fba8c2d208ffad0e606ddc0bb"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Mon Feb 28 19:06:49 2022 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Wed Mar 09 14:04:23 2022 +0000"
      },
      "message": "Extract signature_trie.py from verify_overlaps.py\n\nMakes the efficient pattern matching of hidden API flags that is used\nby verify_overlaps.py available for use in other scripts.\n\nAs part of the move this cleans up the python to use consistent quotes,\nand fix pylint issues.\n\nBug: 202154151\nTest: m out/soong/hiddenapi/hiddenapi-flags.csv\n      atest --host signature_trie_test verify_overlaps_test\n      pyformat -s 4 --force_quote_type double -i scripts/hiddenapi/signature_trie*\n      /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc scripts/hiddenapi/signature_trie*\nChange-Id: I758ca70bb5b7e6806f14b72fd04f821a069f188f\n\nChange-Id: I73fdb7e02127a8c0171a285221d9e6024310953d\n"
    },
    {
      "commit": "b850f84cb951ba4d2725b83d96c7eb5d11ae59ae",
      "tree": "8eb9238076bed3afe86eb972118499c656ce31f0",
      "parents": [
        "2ace628b86d93d9956ef02cad148bb8cd1323398"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Thu Feb 17 19:52:46 2022 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Wed Feb 23 12:16:48 2022 +0000"
      },
      "message": "Generate soong.variables for ndk build\n\nUpdate the ndk build script to have Make generate the soong.variables\nvia the config step, using a new \"ndk\" product.\n\nBug: 174315599\nTest: build/soong/scripts/build-ndk-prebuilts.sh\nChange-Id: I0f6fbf523cf9209ea17b7752dd7470012e0baf8c\n"
    },
    {
      "commit": "3a3f169b5634ef6a7c9ad1040e7cf92dd60a37da",
      "tree": "e9cf98d7bdf017d4225e0b2baef544eb456734ea",
      "parents": [
        "377318b33fca4bde6cea3b5d5059c3aceab73890"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Tue Feb 15 12:55:11 2022 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Mon Feb 21 16:43:43 2022 +0000"
      },
      "message": "Add support for sdk extensions in prebuilt_apis\n\nThis makes it possible to pass an extensions_dir containing finalized\nmodule APIs to prebuilt_apis. The extension versions are compared to the\napi level versions to figure out what the \"latest\" finalized API is for\neach module. This is done using the base_sdk_extension_version, such\nthat any extension higher than than base_sdk_extension_version is\nassumed to be finalized after any of the existing api level versions.\n\nBug: 220086085\nTest: prebuilt_apis_test.go\nTest: existing module in prebuilts/sdk\nChange-Id: Ib792f84202d436f594ba5e8716c6a187f9cd60dc\n"
    },
    {
      "commit": "8fae31138ad458bc03b85abb7210ca8203db1103",
      "tree": "9aff9d8425e230833e4da99ed370958298dd5e73",
      "parents": [
        "3cb45a5f4ae9d8763700ca65347b76fdeb400314"
      ],
      "author": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Thu Feb 10 16:51:02 2022 +1100"
      },
      "committer": {
        "name": "Thiébaud Weksteen",
        "email": "tweek@google.com",
        "time": "Thu Feb 10 16:55:01 2022 +1100"
      },
      "message": "Update rustfmt.toml to 2021 edition\n\nBug: 210475268\nTest: $ cd system/security; find . -name \\*.rs -exec rustfmt --check {} \\;\nChange-Id: I49044e19a17d3806570d04c3215ccd3554ce7903\n"
    },
    {
      "commit": "8d47c480821d84eed430585ee8fa26e737d4703c",
      "tree": "db1ff5578ada869e0b190971d9cc0719e2e515ba",
      "parents": [
        "5a95bcac4ac9aa549d7710d7199b18a2e73be8eb"
      ],
      "author": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Wed Jan 26 14:27:44 2022 -0800"
      },
      "committer": {
        "name": "Cole Faust",
        "email": "colefaust@google.com",
        "time": "Mon Feb 07 11:41:28 2022 -0800"
      },
      "message": "Use soong\u0027s finder to find included makefiles in mk2rbc\n\nHaving soong generate a list of makefiles for mk2rbc\nto look through is much faster than having mk2rbc search\nitself. Profiling the readLinesFromeFile() function that\nreads the list of makefiles shows it takes on the order\nof 200 microseconds, much faster than the ~5 seconds\nit takes for mk2rbc to search the tree itself.\n\nThis CL also allows include statements that are prefixed\nwith a variable. The concern with this was that there\nwould be a lot of load statemnts emitted for generic\ninclude statements, causing the generated code to look\nugly, and converting and loading all those files could\ncause performance issues. On the performance issues\nfront, there\u0027s already a check that it doesn\u0027t result\nin over 150 potentially included files. We can lower\nthat number if necessary, but it\u0027s probably good for now.\nOn the generated code front, while it\u0027s true that it\u0027s\nugly, it\u0027s better to have working but ugly generated\ncode than refusing to generate anything working at all.\n\nTo ensure the soong finder step isn\u0027t slowed down due\nto having to find a bunch of new makefiles, I profiled\nthe combination of newSourceFinder and FindSources in main.go:\n\nBaseline incremental:\n338.011634ms\n340.853335ms\n348.541762ms\n333.229644ms\n349.124824ms\n\nBaseline clean:\n1.003836419s\n1.006203912s\n996.193648ms\n1.031005604s\n1.03691152s\n\nModified incremental:\n349.029285ms\n349.264496ms\n351.774948ms\n337.63187ms\n359.425306ms\n\nModified clean:\n1.028238704s\n1.053103506s\n1.032757506s\n1.016631201s\n1.04288108s\n\nSo we can see the times are barely affected by this change.\n\nFixes: 213508006\nTest: go test\nChange-Id: Iab18bfb127ba3b7e63f2c01f69064805a8398764\n"
    },
    {
      "commit": "75d65f360c18806e683aed87679ce5bcc52823d4",
      "tree": "12fc747a1cc501f24995891bc91ccd84893cea24",
      "parents": [
        "2d305010af8f36a6b5d45560f5304094a3e0a765"
      ],
      "author": {
        "name": "Gurpreet Singh",
        "email": "gurpreetgs@google.com",
        "time": "Mon Jan 24 17:44:05 2022 +0000"
      },
      "committer": {
        "name": "Gurpreet Singh",
        "email": "gurpreetgs@google.com",
        "time": "Tue Feb 01 12:03:48 2022 +0000"
      },
      "message": "Add testOnly attribute to AndroidManifest file of apex_test\n\nIf the build file contains the apex_test module, add the\ntestOnly attribute to the application element of the\ncorresponding AndroidManifest file and set its value to true.\nIf the testOnly attribute is already present and has value\nfalse, then do nothing.\n\nTests added in manifest_fixer_test.py to check if the updated\nAndroidManifest file has the testOnly attribute set to true or not.\n\nBug: 213310150\nTest: atest --host manifest_fixer_test\nTest: m nothing\nTest: manually checked the AndroidManifest file generated\nChange-Id: I36247dbe0261c342d451a4422c314fd8fe0c2369\n"
    },
    {
      "commit": "83bda94c12651023c41da6b8d89f5922c40ab505",
      "tree": "2685e5a8b382cd4a5af7c0d54b4aade32e8f5409",
      "parents": [
        "035fba700a774ede33b8787264f3356c645b2f66"
      ],
      "author": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Dec 15 18:45:22 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Dec 15 18:45:22 2021 +0000"
      },
      "message": "Remove OWNERS for deleted build-mainline-modules.sh\n\nBug: 180394948\nTest: presubmit\nChange-Id: I76a157f9292d28155a7f62acc93cf7fa7fb39cb9\n"
    },
    {
      "commit": "035fba700a774ede33b8787264f3356c645b2f66",
      "tree": "0d029fb165db113abcc7129d65a2190b4957ce0b",
      "parents": [
        "12cba52e4f866a69dc218aa511b2fdafe3b86f7e"
      ],
      "author": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Dec 15 16:21:02 2021 +0000"
      },
      "committer": {
        "name": "satayev",
        "email": "satayev@google.com",
        "time": "Wed Dec 15 16:21:02 2021 +0000"
      },
      "message": "Remove unused build-mainline-modules.sh\n\nThis script is no longer used in any CI or in any other scripts.\n\nBug: 180394948\nTest: presubmit\nChange-Id: Ia1b9f699ae3b9263b6e1d6c28ebec449ee31ef84\n"
    },
    {
      "commit": "bc82ba55c50eac5325760ae684745847a0cd9c72",
      "tree": "b17edd87800e31e2f36a2843334c4d75ddb0523f",
      "parents": [
        "f793ba068c4138ba71b4c38d57d0e066a3b9bc51"
      ],
      "author": {
        "name": "sophiez",
        "email": "sophiez@google.com",
        "time": "Tue Dec 14 14:01:17 2021 -0800"
      },
      "committer": {
        "name": "sophiez",
        "email": "sophiez@google.com",
        "time": "Tue Dec 14 14:52:58 2021 -0800"
      },
      "message": "Java used-by API list generation\n\nUpdate the java used by script to fix the xml format when dexdeps processing resource only APKs\n\nTest: TARGET_BUILD_APPS\u003dcom.android.adbd m dist apps_only\nChange-Id: I61a58d7c739e74a571e97166a7c9b4091e6f8da0\n"
    },
    {
      "commit": "65a981569f77141594bbe82371d3d1d65de28890",
      "tree": "d6e13877f167e885a26ec2e9a5ae3cbe2f2bb07b",
      "parents": [
        "eb59a6d3ea10c7c383b84c0ef3d7dd7a8015d5a8"
      ],
      "author": {
        "name": "sophiez",
        "email": "sophiez@google.com",
        "time": "Fri Dec 10 13:43:04 2021 -0800"
      },
      "committer": {
        "name": "sophiez",
        "email": "sophiez@google.com",
        "time": "Fri Dec 10 13:43:10 2021 -0800"
      },
      "message": "Java used-by API list generation\n\nWrap the dexdeps output content with \"\u003cexternals\u003e\u003c/externals\u003e\" to\nsimplify backend xml parsing.\n\nTest: TARGET_BUILD_APPS\u003dcom.android.adbd m dist apps_only\nChange-Id: I1457eb9558763e50911dc9c689b9bc3fb833a52c\n"
    },
    {
      "commit": "84bec8002358cb1167db534a6d43a148872d6af0",
      "tree": "5e7d9f09799d57d7caecc1f0263f0b19bcb45082",
      "parents": [
        "92d4188c2b341d1f60e3e974d421f9ed1865ff49",
        "a4676f5de60f370f170a3820478974a670fe9788"
      ],
      "author": {
        "name": "Nikita Iashchenko",
        "email": "nikitai@google.com",
        "time": "Wed Dec 08 13:40:44 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Dec 08 13:40:44 2021 +0000"
      },
      "message": "Merge \"Add jdk.internal.ref to package_allowed_list.txt (OpenJDK 11)\""
    }
  ],
  "next": "864028a71b373d91839b045e1818fa2db2af465f"
}
