)]}'
{
  "log": [
    {
      "commit": "e51122a59fb87ff25079cfd0980b49a6b4f78649",
      "tree": "1c977b5aa5908d9093e5ec99e042d514a483835b",
      "parents": [
        "368d48c224d7b8697e3a276e7a054ad6863d1655",
        "b161d3e52f2291c1e727ea6b8f397ed84c802a16"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Aug 14 14:29:06 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 14 14:29:06 2026 -0700"
      },
      "message": "Merge \"gbl: export docs and C headers as build artifacts\" into gbl-mainline"
    },
    {
      "commit": "368d48c224d7b8697e3a276e7a054ad6863d1655",
      "tree": "fc562e6f17b8dde6f01a8ec727b8a20b45b530cc",
      "parents": [
        "952d33944571db9018555b2d6ffc1112296a36a7"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Wed Aug 12 17:24:03 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Fri Aug 14 07:57:02 2026 -0700"
      },
      "message": "gbl: standardize GUID definitions\n\nPreviously GUIDs were defined in Rust at the usage site, which presented\na few problems:\n\n1. Can be difficult to locate the GUID, since we define some protocols\n   in libefi and some in libefi_types\n2. Our C headers didn\u0027t provide the GUID, so users would have to\n   define it themselves potentially leading to copy-paste errors\n\nThis CL standardizes GUIDs so that they are all declared in the C\nheaders, and then converted to Rust via bindgen.\n\nDue to some bindgen limitations, the C-\u003eRust translation isn\u0027t quite as\nsimple as a single pub const. Instead we export the GUID as two u64s and\nthen combine them back together in the Rust code.\n\nBug: b/501431053\nChange-Id: I04b24c9d63ea206595cb0b6f4e7609c974fa403f\n"
    },
    {
      "commit": "b161d3e52f2291c1e727ea6b8f397ed84c802a16",
      "tree": "b7fa98e9087968b1f30393c8f38d8529ac1c0fb8",
      "parents": [
        "952d33944571db9018555b2d6ffc1112296a36a7"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Thu Aug 13 12:56:49 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Thu Aug 13 14:43:01 2026 -0700"
      },
      "message": "gbl: export docs and C headers as build artifacts\n\nAdds a new build artifact `gbl-resources-{build_number}.zip`. This\nzipfile contains:\n\n- README.md: new top-level readme describing the archive\n- docs/: all files in gbl/docs/\n- include/: all files in gbl/libefi_types/include\n\nThe purpose is to make it easier for developers to develop against GBL.\nThis makes it so they don\u0027t have to go digging through our code to find\nthe information they need, and more importantly makes it simple to\nguarantee they are developing against the exact same ABI versions as\ntheir GBL binary, which was previously surprisingly difficult.\n\nAlso does a slight update of a few of the other README files to make\nthem a little more descriptive of the current state.\n\nBug: b/501431053\nChange-Id: I113be3fae095001e33b5d9232d63049b9c58e0d0\n"
    },
    {
      "commit": "952d33944571db9018555b2d6ffc1112296a36a7",
      "tree": "26ef747f9f06f2149d0498f8378a9df4d9c9a0c2",
      "parents": [
        "ffbb675c6cfe7ae90084830d1331f5addec3f916"
      ],
      "author": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Thu Aug 13 03:09:50 2026 +0000"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Thu Aug 13 03:10:59 2026 +0000"
      },
      "message": "docs: Fix errors and outdated references in GBL EFI protocol docs\n\n* Standardize GBL_EFI_AVB_PROTOCOL_GUID and GBL_EFI_AVF_PROTOCOL_GUID\n  macro names in protocol documentation.\n* Correct Reserved field type in GBL_EFI_AVB_VERIFICATION_RESULT from\n  UINT32 to UINT64 to match C headers.\n* Fix copy-paste error in ReadSecretKeeperPublicKey documentation in\n  gbl_efi_avf_protocol.md.\n* Align GBL_EFI_UNBOOTABLE_REASON and its enum variants with C headers\n  and Rust wrappers in gbl_efi_boot_control_protocol.md.\n* Remove non-existent FIT variant from GBL_EFI_DEVICE_TREE_METADATA.Source\n  description and drop dead fixup_zbi link in\n  gbl_efi_os_configuration_protocol.md.\n* Fix outdated header path libefi_types/defs to libefi_types/include in\n  README.md.\n\nBug: 397744185\nAssisted-By: Antigravity:Gemini-Next\nChange-Id: I0b20f288deab7d016710b05fa5e1b38004723dda\n"
    },
    {
      "commit": "ffbb675c6cfe7ae90084830d1331f5addec3f916",
      "tree": "37abe6f6d5762da95bd9a36248e3e3217307ab15",
      "parents": [
        "929a26b492874a5e966dbcd5f80d8666d200c43b"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Aug 12 20:30:51 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Aug 12 20:30:51 2026 +0000"
      },
      "message": "Add QEMU integration tests for ML-DSA DICE boot\n\nAdd end-to-end QEMU integration tests verifying GBL\u0027s DICE handover\nderivation and pvmfw loading for ML-DSA-65 and ML-DSA-87 signature\nalgorithms.\n\nTest: tools/bazel test @gbl//tests\nChange-Id: I6464dcda9cb3f2e3c1c3bd1e7046ba2ca477df72\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "929a26b492874a5e966dbcd5f80d8666d200c43b",
      "tree": "43ca66c5b26c12c9369815724ae94369e3c6f337",
      "parents": [
        "9ba3b3c19e83dad1c0489568802d33d11fe40686"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Fri Aug 07 15:24:13 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Aug 12 20:25:40 2026 +0000"
      },
      "message": "Add ML-DSA-65 and ML-DSA-87 support to libopendice\n\nMap COSE algorithm identifiers for ML-DSA-65 (-49) and ML-DSA-87 (-50)\nto their corresponding DiceKeyAlgorithm values in\ncose_alg_to_dice_key_algorithm().\n\nChange-Id: I4f32134154572e4666bfd652ba14407cce0d4a0e\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "9ba3b3c19e83dad1c0489568802d33d11fe40686",
      "tree": "4a836e975374a7f11df5086e0ed97541a2146b83",
      "parents": [
        "f08a4a523007c8b065ffd9cee78a8a3547935b7a",
        "ea6af00636edc6fad84c445b86171d7b06dbc86a"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Aug 12 13:05:02 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 12 13:05:02 2026 -0700"
      },
      "message": "Merge \"Revert^2 \"Add boringssl_mldsa_utils.c to libopen_dice build\"\" into gbl-mainline"
    },
    {
      "commit": "ea6af00636edc6fad84c445b86171d7b06dbc86a",
      "tree": "023eb7f9590052e96d1dea871a74370be2666aa5",
      "parents": [
        "cc1180013406191dcf52411734801d610ef8056e"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Aug 12 12:48:38 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 12 12:48:38 2026 -0700"
      },
      "message": "Revert^2 \"Add boringssl_mldsa_utils.c to libopen_dice build\"\n\nThis reverts commit cc1180013406191dcf52411734801d610ef8056e.\n\nReason for revert: Original change got re-landed: b/543777828\n\nChange-Id: I28ce743ae5f9ec888dbc6ab45e45e278b1d185c0\n"
    },
    {
      "commit": "f08a4a523007c8b065ffd9cee78a8a3547935b7a",
      "tree": "7f3dba45e7e62afa6519cd9c81f9fb909a28b814",
      "parents": [
        "da87f85d0940db24903973be6fae0461dbab248a",
        "5e20379bba3e22d80a1b23ac85b7682254c8a7fa"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Aug 12 12:30:22 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 12 12:30:22 2026 -0700"
      },
      "message": "Merge changes I23aeac5b,Ib1457cc7 into gbl-mainline\n\n* changes:\n  Add QEMU integration tests for DICE boot and AVF protocol\n  Introduce libpvmfwconfig for the pvmfw configuration data format\n"
    },
    {
      "commit": "da87f85d0940db24903973be6fae0461dbab248a",
      "tree": "cbe86b614ee49fe20842574841c9ed2b527764a6",
      "parents": [
        "497f00ce55c78737339ac5176082d29018b01063",
        "7ab83ebb8175ff5464ec79eea95fff732ca7775f"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Aug 12 08:31:51 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 12 08:31:51 2026 -0700"
      },
      "message": "Merge \"gbl: slots: Preserve remaining tries in Bootability::Successful\" into gbl-mainline"
    },
    {
      "commit": "497f00ce55c78737339ac5176082d29018b01063",
      "tree": "18d368f2948b1eeb4259282ac1413190e7110053",
      "parents": [
        "cc1180013406191dcf52411734801d610ef8056e",
        "34b740897c29d864209d27b951de5d56dd933d92"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Aug 11 18:17:02 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 11 18:17:02 2026 -0700"
      },
      "message": "Merge \"gbl: Flush storage on write_to_partition_sync\" into gbl-mainline"
    },
    {
      "commit": "34b740897c29d864209d27b951de5d56dd933d92",
      "tree": "18d368f2948b1eeb4259282ac1413190e7110053",
      "parents": [
        "f92f9955a89c8ed1c73515ae7514a88185e2048f"
      ],
      "author": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Tue Aug 11 21:51:32 2026 +0000"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Tue Aug 11 15:45:55 2026 -0700"
      },
      "message": "gbl: Flush storage on write_to_partition_sync\n\nWhen booting into fastboot, GBL clears the bootloader message (BCB) in\nthe misc partition via write_to_partition_sync(). However,\nwrite_to_partition_sync() previously called the asynchronous\nwrite_to_partition() wrapped in block_on() without invoking hardware\ncache flush (flush_blocks_ex / flush_blocks).\n\nIf the device is hard reset (e.g. long power key press) while waiting in\nfastboot, the unflushed write cache in the storage controller is lost,\ncausing the device to re-read the stale BCB and enter a boot loop.\n\nThis change:\n- Adds flush() and flush_sync() to BlockIo, BlockIoSync, and Disk.\n- Implements flush() and flush_sync() in EfiBlockDeviceIo using\n  BlockIo2Protocol::flush_blocks_ex() with fallback to\n  BlockIoProtocol::flush_blocks().\n- Adds write_unique_partition_sync() using .as_sync() and explicitly\n  flushing write cache to physical storage.\n- Updates GblOps::write_to_partition_sync() to call\n  write_unique_partition_sync().\n\nFlushing inside write_to_partition_sync() is prudent because synchronous\nwrites in GBL are reserved exclusively for critical metadata updates\n(e.g., BCB, memtag, ABR metadata) before state transitions. These are\nrare, one-off operations with negligible latency overhead (~1-3 ms),\nensuring crash-consistency on unexpected power loss without affecting\nasynchronous bulk flash performance.\n\nBug: 544628456\nTest: Unit tests in partition and libstorage\nAssisted-By: Antigravity:Gemini-Next\nChange-Id: I694903946e1b73959fa4c83b17c85f14e0cfc758\n"
    },
    {
      "commit": "7ab83ebb8175ff5464ec79eea95fff732ca7775f",
      "tree": "25e5c5f815352ab2e41a85870ad9e8b42b2aed13",
      "parents": [
        "cc1180013406191dcf52411734801d610ef8056e"
      ],
      "author": {
        "name": "Unnathi Chalicheemala",
        "email": "uchalich@qti.qualcomm.com",
        "time": "Fri Aug 07 14:34:13 2026 -0700"
      },
      "committer": {
        "name": "Unnathi Chalicheemala",
        "email": "uchalich@qti.qualcomm.com",
        "time": "Tue Aug 11 14:53:08 2026 -0700"
      },
      "message": "gbl: slots: Preserve remaining tries in Bootability::Successful\n\nChange Bootability::Successful from a unit variant to\nBootability::Successful(Tries) so the remaining retry count is\nretained when a slot is marked as successfully booted.\n\nPreviously the tries value was discarded on the successful path in\nboth the Android (BootloaderControl) and Fuchsia (AbrData) slot\nbackends, and the EFI boot control protocol conversion also dropped\nit. As a result, fastboot\u0027s slot-retry-count variable always reported\n0 for successful slots.\n\nBug: 542372136\nChange-Id: If9330d72891d499d8249421e86a480ede640ca8d\n"
    },
    {
      "commit": "5e20379bba3e22d80a1b23ac85b7682254c8a7fa",
      "tree": "062039361eeabbc14a24f3ed6cc69f395dbfb579",
      "parents": [
        "002e28169875f953c516d6559ef540d766f6fe49"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Aug 10 16:44:40 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Aug 11 13:36:52 2026 +0000"
      },
      "message": "Add QEMU integration tests for DICE boot and AVF protocol\n\nAdd end-to-end QEMU integration tests verifying GBL\u0027s DICE handover\nderivation and pvmfw loading across the signature algorithms libopendice\nsupports: Ed25519, P-256 and P-384\n\nChange-Id: I23aeac5b4b459e9548c0b2cfbcf60e0232db2b85\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "002e28169875f953c516d6559ef540d766f6fe49",
      "tree": "c584b1ac101536d346431f2e3b8231fcd6a565b8",
      "parents": [
        "cc1180013406191dcf52411734801d610ef8056e"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Aug 10 15:01:49 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Aug 11 13:19:24 2026 +0000"
      },
      "message": "Introduce libpvmfwconfig for the pvmfw configuration data format\n\nMove the pvmfw configuration format definitions out of libgbl into a\nnew libpvmfwconfig crate and add a validating read-only parser\nnext to them, establishing a single source of truth shared by the\ntests across the GBL\n\nChange-Id: Ib1457cc7cab8522360f7739034f34a717f82cc49\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "cc1180013406191dcf52411734801d610ef8056e",
      "tree": "50562ec7644906f33fc1bceea8408413451a1043",
      "parents": [
        "8f0e142a87c23032f6f2cf35e1cc888141367240"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Fri Aug 07 12:25:08 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 07 12:25:08 2026 -0700"
      },
      "message": "Revert \"Add boringssl_mldsa_utils.c to libopen_dice build\"\n\nThis reverts commit 8f0e142a87c23032f6f2cf35e1cc888141367240.\n\nReason for revert: Original change got reverted: b/543777828\n\nChange-Id: I199f61ced49d135b342c8b7a0fedbc3c633cc8fb\n"
    },
    {
      "commit": "8f0e142a87c23032f6f2cf35e1cc888141367240",
      "tree": "023eb7f9590052e96d1dea871a74370be2666aa5",
      "parents": [
        "f92f9955a89c8ed1c73515ae7514a88185e2048f"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Fri Aug 07 13:07:05 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Fri Aug 07 13:16:23 2026 +0000"
      },
      "message": "Add boringssl_mldsa_utils.c to libopen_dice build\n\nUpstream open-dice updated src/boringssl_multialg_ops.c to include\nML-DSA support, referencing symbols implemented in\nsrc/boringssl_mldsa_utils.c.\n\nAdd src/boringssl_mldsa_utils.c to cbor_baremetal_multialg_srcs in\nBUILD.open_dice.bazel so that libopen_dice_cbor_baremetal_multialg_static\nlinks successfully.\n\nChange-Id: Ie2ad0d931012957da850f4d0fd74190656b4f88e\n"
    },
    {
      "commit": "f92f9955a89c8ed1c73515ae7514a88185e2048f",
      "tree": "50562ec7644906f33fc1bceea8408413451a1043",
      "parents": [
        "c6e3920ab7518696c0bccf45d01f891ac488aa80"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Thu Aug 06 17:20:25 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Thu Aug 06 17:21:54 2026 +0800"
      },
      "message": "signtool: Make gblsigntool hermetic against parent environ\n\nUpdating the shebang prelude of gblsigntool_executable to an explicit\nBash launcher that unsets PYTHONPATH, RUNFILES_DIR, and\nRUNFILES_MANIFEST_FILE before invoking python3.\n\nThis prevents parent py_test runners from injecting _bazel_site_init.py\nand sys.meta_path import hooks into gblsigntool\u0027s Python process during\nsite.py initialization, allowing gblsigntool to run hermetically as a\nstandalone zipapp executable.\n\nBug: 435648506\nTest: tools/bazel test @gbl//signtool:gblsigntool_test\nChange-Id: Ia0faa683a0f317b59dce278dc358240e56661181\n"
    },
    {
      "commit": "c6e3920ab7518696c0bccf45d01f891ac488aa80",
      "tree": "830e4395be8e026244153dfb70e2a9abf6f0a91f",
      "parents": [
        "a804f258338901cd93e17701f52c65b0aacab97c",
        "acd2dd7d0e10bcd06247ff877ba03b29c6fd436a"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Aug 04 18:10:19 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 04 18:10:19 2026 -0700"
      },
      "message": "Merge \"Convert bootconfig into bootargs in dev builds only\" into gbl-mainline"
    },
    {
      "commit": "acd2dd7d0e10bcd06247ff877ba03b29c6fd436a",
      "tree": "9c2c35685cb0e900d001cb4d922cdfd895e4b1ed",
      "parents": [
        "b43f536aeea02d0841d4dbf14b96e415f2b14ec2"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Aug 03 21:35:25 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Aug 04 16:21:28 2026 -0700"
      },
      "message": "Convert bootconfig into bootargs in dev builds only\n\nBoot images that predate bootconfig support rely on GBL folding the\nwhole bootconfig into the kernel commandline. The kernel silently\ntruncates the commandline at COMMAND_LINE_SIZE (2048 bytes), which can\ndrop androidboot.verifiedbootstate and the rest of the verified boot\nparameters without any diagnostic.\n\nKeep the conversion in dev builds, where such images still need to be\nbootable for testing, and compile it out of production builds entirely.\n\nBug: 541290879\nChange-Id: I08722bc73e56d4defbc7d12f80db4c057b936daf\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "a804f258338901cd93e17701f52c65b0aacab97c",
      "tree": "069e3ccc6b6d28d8896a8659169b8c07c5c598f2",
      "parents": [
        "4d94314e85e762e6c22514abe26eab37801c8c5c",
        "6c60c14dcb93414a67fbe9cfe64c8458bc34ed3f"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Aug 04 12:38:59 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 04 12:38:59 2026 -0700"
      },
      "message": "Merge \"gbl: Populate EFI info for Linux kernel boot\" into gbl-mainline"
    },
    {
      "commit": "4d94314e85e762e6c22514abe26eab37801c8c5c",
      "tree": "7e63facbc888f66290520a3a4e9668c94147ff6d",
      "parents": [
        "a11e8287eea232fd39da8ee3e17d7392d7b8b09b",
        "e45a537b87aeec05d37979035a976c0ab56d864c"
      ],
      "author": {
        "name": "Karthik Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Tue Aug 04 12:20:26 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 04 12:20:26 2026 -0700"
      },
      "message": "Merge \"libstorage: Improve robustness of GPT parsing\" into gbl-mainline"
    },
    {
      "commit": "6c60c14dcb93414a67fbe9cfe64c8458bc34ed3f",
      "tree": "64a10ac1eb63f33a3593d045ea5da72425e57ccf",
      "parents": [
        "a11e8287eea232fd39da8ee3e17d7392d7b8b09b"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Tue Apr 28 10:19:39 2026 -0600"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Tue Aug 04 19:05:54 2026 +0000"
      },
      "message": "gbl: Populate EFI info for Linux kernel boot\n\nThis change implements the EFI handover protocol for the x86 Linux\nkernel. The kernel\u0027s boot protocol requires the `efi_info` struct\nin the boot parameters to be populated with details about the EFI\nenvironment.\n\nThis commit adds the necessary logic to pass the EFI System Table\naddress and the final memory map details to the kernel via this\nstruct. This ensures the kernel can correctly take over from the\nbootloader in an EFI environment.\n\nChange-Id: I8bdcf3b8fc9ffdb0bd2f63b7b248a9d8246e2c74\nSigned-off-by: Karthikeyan Ramasubramanian \u003ckramasub@google.com\u003e\n"
    },
    {
      "commit": "a11e8287eea232fd39da8ee3e17d7392d7b8b09b",
      "tree": "50dfea002dcdb8b97302dfdbb0c50c63909e706b",
      "parents": [
        "78fa60df233d7e9be5d47a9da1ae5d68a428c0c0"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jul 24 21:06:16 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Aug 04 04:23:29 2026 -0700"
      },
      "message": "gbl: Add ARM64 and x86_64 dev_bootstub build targets\n\nAdds `aarch64_dev_bootstub` and `x86_64_dev_bootstub` build targets in\n`gbl/efi/BUILD`, which enable the `efi_boot_stub` feature flag for\ntesting EFI boot stub execution.\n\nBug: 477970734\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: Ia29ccc41af2a8a3debc66295c7037972a7ca1219\n"
    },
    {
      "commit": "78fa60df233d7e9be5d47a9da1ae5d68a428c0c0",
      "tree": "d1341bee233ac3a4029caec8b4390b18c7935fad",
      "parents": [
        "1dd9e3dc2974a9803851895477cc19111066ec98",
        "a159c307cd6c0b4bebfcea0bc6bc6b5de7f023f1"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Aug 04 04:23:11 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 04 04:23:11 2026 -0700"
      },
      "message": "Merge \"efi: Implement EFI boot stub kernel jump logic for ARM64 and x86_64\" into gbl-mainline"
    },
    {
      "commit": "a159c307cd6c0b4bebfcea0bc6bc6b5de7f023f1",
      "tree": "5045805b5df8ac83f1853aa52f8e752b55270cc4",
      "parents": [
        "451724e63e0cdce6b0199001d16c0c6950f19baa"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jul 24 20:51:18 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Tue Aug 04 18:06:19 2026 +0800"
      },
      "message": "efi: Implement EFI boot stub kernel jump logic for ARM64 and x86_64\n\nLinux kernel execution via the EFI boot stub under the `efi_boot_stub`\nfeature flag:\n\n* ARM64: Loads the kernel as an EFI image and executes it via\n  `LoadedImageProtocol`.\n\n* x86_64: Adds `boot_linux_bzimage_efi_handover()` in `libboot` to perform\n  the 64-bit EFI handover jump protocol (`call handover_entry`) with\n  `image_handle`, `system_table`, and `boot_params` pointers.\n\n* libefi: Adds `set_load_options()`, exposes `handle` and `protocol` on\n  `LoadedEfiImage`, adds `install_protocol_interface()` and\n  `install_configuration_table()`, and exports `EFI_DTB_TABLE_GUID` and\n  `LINUX_EFI_LOADED_IMAGE_FIXED_GUID` constants.\n\nBug: 477970734\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: I00a02df76ce5fc17ea4523b55f1b0e6327a05a02\n"
    },
    {
      "commit": "e45a537b87aeec05d37979035a976c0ab56d864c",
      "tree": "2091f8051d4f5531c7c1a90a4740be1653b3f2b6",
      "parents": [
        "451724e63e0cdce6b0199001d16c0c6950f19baa"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Mon Apr 27 16:17:51 2026 -0600"
      },
      "committer": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Mon Aug 03 17:32:56 2026 -0600"
      },
      "message": "libstorage: Improve robustness of GPT parsing\n\nThis change enhances the GPT parsing logic to more reliably handle\npartition tables with null entries interspersed between valid ones.\n\nKey improvements include:\n- Correctly identifying null partitions by checking for a zeroed-out\n  partition type GUID, which is a more reliable method than checking\n  LBA ranges.\n- Modify `PartitionIterator::next()` to iterate over all entries to\n  filter for valid partitions, rather than stopping at the first null\n  entry encountered. This ensures all valid partitions are discovered.\n- Updating `Gpt::entries` to return an iterator instead of a slice, by\n  delegating to `self.partition_iter()`.\n- Updating callers of `Gpt::entries` (`num_partitions`, `get_partition`,\n  `find_partition`) and associated tests to work with the new iterator\n  signature.\n\nThese adjustments make the GPT implementation more resilient and less\nprone to errors with varied partition table structures.\n\nChange-Id: I71407ba44102923c8e031506ca4f4415f6a68ca2\nSigned-off-by: Karthikeyan Ramasubramanian \u003ckramasub@google.com\u003e\n"
    },
    {
      "commit": "1dd9e3dc2974a9803851895477cc19111066ec98",
      "tree": "9c4ef0b21e7340b9b9be6ce7ef1cac9dd5c9fe03",
      "parents": [
        "b43f536aeea02d0841d4dbf14b96e415f2b14ec2"
      ],
      "author": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Mon Aug 03 21:36:25 2026 +0000"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Mon Aug 03 21:38:03 2026 +0000"
      },
      "message": "gbl: Increase integration test GetVar buffer size\n\nWhen testing GBL_EFI_FASTBOOT_PROTOCOL::GetVar during optional\nprotocol integration tests, test_gbl_fastboot previously used a\nhardcoded 32-byte buffer to read back variables from GetVarAll.\n\nFor vendors with valid OEM fastboot variables exceeding 32 bytes\n(such as 64-byte hex serial numbers or hashes), this caused\nfalse-positive test failures due to buffer truncation errors\n(e.g., outbuf size too long / EFI_BUFFER_TOO_SMALL).\n\nUpdate test_gbl_fastboot to use fastboot::MAX_RESPONSE_SIZE\n(256 bytes), aligning the test buffer capacity with GBL\u0027s\nstandard runtime fastboot command response limit.\n\nBug: 376407624\nAssisted-by: Antigravity:Gemini Next\nTest: Treehugger\nTest: ./bazel.sh test @gbl//tests\nChange-Id: If842dc72e3b3da30b9c6fcf752177c2264d8c985\n"
    },
    {
      "commit": "b43f536aeea02d0841d4dbf14b96e415f2b14ec2",
      "tree": "986493827d39abe5d73c0f107303981e473aef95",
      "parents": [
        "451724e63e0cdce6b0199001d16c0c6950f19baa"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jul 31 23:19:16 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jul 31 23:19:16 2026 +0800"
      },
      "message": "gbl: Fix incorrect GblEfiBootMemoryProtocol GUID in libefi_types\n\nThis change updates GblEfiBootMemoryProtocol::GUID in libefi_types\nfrom the EFI Block I/O Protocol GUID to canonical\nGBL_EFI_BOOT_MEMORY_PROTOCOL_GUID (309F2874-AD59-4FD2-AF5E-CE0F4AB401A6),\nmatching libefi and documentation.\n\nTest: ./bazel.sh test @gbl//tests\nChange-Id: Iae9f12b5406fcea04624ff352f9fe6113aaa2aca\n"
    },
    {
      "commit": "451724e63e0cdce6b0199001d16c0c6950f19baa",
      "tree": "7a586de25a83768d923076267245eeb94e69fdf3",
      "parents": [
        "b4b6f74b39b0fb90d7f7b5b48f2c87a69a37eb6b"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Tue Apr 28 09:30:45 2026 -0600"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Wed Jul 29 20:00:35 2026 +0000"
      },
      "message": "gbl: Coalesce and sort e820 memory map\n\nThis change improves the generation of the e820 memory map from the\nEFI memory map. It now coalesces adjacent memory regions of the same\ntype to create a more compact map.\n\nAdditionally, the memory map is now sorted by address, which is a\nrequirement of the Linux boot protocol. This ensures that the kernel\nreceives a valid and well-formed memory map.\n\nChange-Id: I1ab69c598dedbafacd8a5f040637c1206f5962d7\nSigned-off-by: Karthikeyan Ramasubramanian \u003ckramasub@google.com\u003e\n"
    },
    {
      "commit": "b4b6f74b39b0fb90d7f7b5b48f2c87a69a37eb6b",
      "tree": "e4d3d54ed519145889cb8b9584af6450d2ec16fb",
      "parents": [
        "f6bf6a3eb745632e7ff6a76b456fbdb2a3c0c457",
        "dd329e478bac1d751cba939330905c401e313012"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jul 29 10:59:19 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 10:59:19 2026 -0700"
      },
      "message": "Merge \"libefi: Add support for allocating pages at a specific address\" into gbl-mainline"
    },
    {
      "commit": "f6bf6a3eb745632e7ff6a76b456fbdb2a3c0c457",
      "tree": "ed6f1cde8a82ff6bbd2548aad1a9c2423bcf1bef",
      "parents": [
        "9344a91ece281b3ee913a50934cf92f2f1aec9d6",
        "b31b700e8ad0358bca3359edcd3def6eaef1f42d"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jul 29 10:47:39 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 10:47:39 2026 -0700"
      },
      "message": "Merge \"libstorage: Statically assert GPT entry size is 128 bytes\" into gbl-mainline"
    },
    {
      "commit": "9344a91ece281b3ee913a50934cf92f2f1aec9d6",
      "tree": "b93a3464613291402c7acfe8d2817552c58c0920",
      "parents": [
        "0ece0b6f9abae29c73ace5acdf419f844788339e",
        "368f29ea637725bbd6c4b4f81fc61b8e1c7ce564"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jul 29 10:44:15 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 29 10:44:15 2026 -0700"
      },
      "message": "Merge \"gbl: emit hypervisor props as 1, not \"true\"\" into gbl-mainline"
    },
    {
      "commit": "dd329e478bac1d751cba939330905c401e313012",
      "tree": "6e5b5997bd3d440ec77de1ccee32549741902a4f",
      "parents": [
        "0ece0b6f9abae29c73ace5acdf419f844788339e"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Mon Apr 27 17:00:54 2026 -0600"
      },
      "committer": {
        "name": "Karthik Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Wed Jul 29 10:13:56 2026 -0700"
      },
      "message": "libefi: Add support for allocating pages at a specific address\n\nThis change enhances the UEFI memory allocation wrapper to support\nallocations at a fixed physical address or with a maximum address limit.\n\nThe `BootServices::allocate_pages` function now accepts an\n`AllocationAddress` enum parameter, which can be `Any`, `Fixed(addr)`, or\n`Max(addr)`. Based on this parameter, the appropriate `EfiAllocatorType`\nis passed to the underlying UEFI `AllocatePages` call.\n\nThis is essential for cases where code/data must be placed at a known\nlocation for hardware or other software components - eg. kernel.\n\nChange-Id: I253a4251588447a6398f963b541557b588f7755d\nSigned-off-by: Karthikeyan Ramasubramanian \u003ckramasub@google.com\u003e\n"
    },
    {
      "commit": "0ece0b6f9abae29c73ace5acdf419f844788339e",
      "tree": "55b6f50446346b4fb50d64a4c103b83065c33b08",
      "parents": [
        "d7c91ec9480042621403aa6ee007ff9f5007d110"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Mon Jul 27 15:28:52 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Mon Jul 27 10:49:43 2026 -0700"
      },
      "message": "libefi: Change BOOT_SERVICES.load_image() source buffer to const\n\nSince load_image() shouldn\u0027t modify the source buffer, mark it as const\nso we can pass immutable rust buffers into BS.load_image().\n\nBug: 477970734\nTest: tools/bazel build --config\u003dgbl //bootable/libbootloader:gbl_efi_dist\nChange-Id: If14ccf46c89269f83fa47ab6e119c02d6ac4ede9\n"
    },
    {
      "commit": "d7c91ec9480042621403aa6ee007ff9f5007d110",
      "tree": "5e7d3beedc6def0b85356f65775f4baad1a81e4f",
      "parents": [
        "14a0e4d858ef08ce1a66c09e102b7a4961dc8899"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Jul 27 16:32:31 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Jul 27 16:32:58 2026 +0000"
      },
      "message": "Fix safe-mmio crate build breakage\n\nsafe-mmio v0.3.1 declares `edition \u003d \"2024\"` in its Cargo.toml and uses\nlet chains, which are rejected under the 2021 edition default used by\n`gbl_rust_crate_repository`. Sets the edition explicitly to \"2024\",\nmatching its only consumer `virtio_drivers`.\n\nChange-Id: I71088578791fce56428eb706c0df8926a372c604\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "14a0e4d858ef08ce1a66c09e102b7a4961dc8899",
      "tree": "7fc5d78670172fe828932fd0358672f0333d747b",
      "parents": [
        "b2d5585815899292188b3cfd1e25448425a92cb9"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jul 16 17:47:39 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jul 16 17:47:39 2026 +0000"
      },
      "message": "Fix zeroize crate build breakage\n\nNewer version of zeroize has a README.md file that needs to be included\nin rust sources. Adds it as compiled data.\n\nBug: 534687717\nChange-Id: I1915cfb208831de3afdced49a485e8177260fbfb\n"
    },
    {
      "commit": "b2d5585815899292188b3cfd1e25448425a92cb9",
      "tree": "f15207a559e4765517aeeeaa135d625ed9eebb67",
      "parents": [
        "c54bbf52ce129943f64c9c75538d2914afea4d65",
        "7cfe42f23823328d2402d4b3e15edf189a541aad"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jul 15 17:30:45 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 15 17:30:45 2026 -0700"
      },
      "message": "Merge \"gbl: panic on new() failure\" into gbl-mainline"
    },
    {
      "commit": "c54bbf52ce129943f64c9c75538d2914afea4d65",
      "tree": "3673b558be7ffc4be0b2852f8b960ccc1232036a",
      "parents": [
        "af5f0f24c3f319a0ea72bdd4bc3a7bd65f4ca8a0"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Wed Jul 15 10:34:20 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Wed Jul 15 10:37:39 2026 -0700"
      },
      "message": "gbl: fix env_filter build\n\nCommit 11a9153e9 updated env_filter to v2.0.0 which splits the crate\ninto std and nostd variants. We need `Builder::parse()` which is now\ngated behind the std feature, to turn it on.\n\nThis functionality is only used transitively in vhost_device_vsock which\nis host-only, so using std is fine.\n\nChange-Id: Ic7f77e4c2dc3d354936d2227b7ea7f8ba2c26a7f\n"
    },
    {
      "commit": "7cfe42f23823328d2402d4b3e15edf189a541aad",
      "tree": "c86463b0921f471c453a8ce75670c19b4ef97a3d",
      "parents": [
        "af5f0f24c3f319a0ea72bdd4bc3a7bd65f4ca8a0"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Wed Jul 15 10:29:59 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Wed Jul 15 10:29:59 2026 -0700"
      },
      "message": "gbl: panic on new() failure\n\nC++ spec requires new() not return on allocation failure, this CL\ncorrects our implementation by panicking.\n\nBug: b/534687717\nChange-Id: I2ed5f2df4ba2da7a79dc4695356dd1c12f6d2d09\n"
    },
    {
      "commit": "af5f0f24c3f319a0ea72bdd4bc3a7bd65f4ca8a0",
      "tree": "75d0877cb0ea6f7e7215e515fa46debf4c514040",
      "parents": [
        "8b64a2bb7e98f761cd787fcc9aec6e3539979103"
      ],
      "author": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Tue Jul 14 09:04:10 2026 -0700"
      },
      "committer": {
        "name": "David Pursell",
        "email": "dpursell@google.com",
        "time": "Tue Jul 14 09:04:10 2026 -0700"
      },
      "message": "gbl: add C++ allocation stubs\n\nThe latest boringssl update added some calls to C++ new/delete but our\nGBL libc was only providing C malloc/free. Add a libcxx stub library to\nsupply the required functions.\n\nBug: b/534687717\nChange-Id: Ibc10956cc0ac122ce080af08cf5955811e101dd5\n"
    },
    {
      "commit": "8b64a2bb7e98f761cd787fcc9aec6e3539979103",
      "tree": "27bd0273e8f43ed8085615718ec3e5eea6a3eccb",
      "parents": [
        "000a07bd911baaf7e409dbe4438607629803cd24"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jun 30 23:13:47 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Fri Jul 10 17:55:32 2026 +0000"
      },
      "message": "Add qemu test for lldb debugging flow\n\nAdds a qemu test that exercises lldb+qemu debugging flow for GBL.\n\nBug: 533017912\nChange-Id: I2961932055256cc8b99975cecff8c24b5673a0b3\n"
    },
    {
      "commit": "000a07bd911baaf7e409dbe4438607629803cd24",
      "tree": "a1c00ab2a2b9905108397b4f237435a5865a53ee",
      "parents": [
        "dcc7579d3d395a4c3eafeacb8fdd050d05ad82ea"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jul 09 17:38:50 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jul 09 17:38:50 2026 +0000"
      },
      "message": "Fix build brekage due to crate update\n\nvhost_device_vsock relies on read_volatile and write_volatile\nimplementations for UnixStream, which are gated behind the rawfd\nfeature in the vm_memory crate after recent update\n\nChange-Id: I8b7847f8f11b54c5edd65495bf3b25a8692b1d81\n"
    },
    {
      "commit": "dcc7579d3d395a4c3eafeacb8fdd050d05ad82ea",
      "tree": "1f8c9e6a3ac52f7848fac6376e283f5c567c1cab",
      "parents": [
        "3d301b16ba8777977f5b4d5f7076777dae5c1f4a"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jul 01 22:45:46 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jul 08 19:34:52 2026 +0000"
      },
      "message": "Test partition buffer management\n\nExtend qemu_boot_memory_test to cover GBL\u0027s partition buffer management\nlogic in EFI specific code.\n\nBug: 525176052\n\nChange-Id: I22d2327223410af1428db2bf94d9eaad264776b1\n"
    },
    {
      "commit": "3d301b16ba8777977f5b4d5f7076777dae5c1f4a",
      "tree": "d796f8bcd305ce4acc6cb5e6500517f154370198",
      "parents": [
        "ad57256fa4773de4525b5f799d8250368fd0d025",
        "81db2afd9f4a72d76d6b935312b78438f1b729f2"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jul 08 10:25:23 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 08 10:25:23 2026 -0700"
      },
      "message": "Merge \"fastboot protocol qemu test\" into gbl-mainline"
    },
    {
      "commit": "81db2afd9f4a72d76d6b935312b78438f1b729f2",
      "tree": "3653c3b2663bbe6e652150326e54c171b9d95d47",
      "parents": [
        "40a680b465e806411fc74e3d9c55c2a020894046"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jul 01 23:08:34 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jul 07 22:57:27 2026 +0000"
      },
      "message": "fastboot protocol qemu test\n\nImplements a mock GblEfiFatsboot protocol for qemu test. Adds the\nfollowing e2e fastboot test cases:\n\n* oem gbl-integration-test-optional\n* oem gbl-integration-test-required\n* backend defined command: \"oem readenv \u003cvar\u003e\" and \"readenv:\u003cvar\u003e\".\n\nBug: 531837677\n\nChange-Id: I6212a5ac79ba81c13072902a1a3ec284267a23a1\n"
    },
    {
      "commit": "ad57256fa4773de4525b5f799d8250368fd0d025",
      "tree": "f672a2d9a77efe9bf8253dbfbf25134ffc21260d",
      "parents": [
        "7574196d9b8ba72139e94999cddb9b87a53eb69e",
        "b7d6d5487b73e31910b6113d5d00d8585ec6124d"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jul 07 11:18:41 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 07 11:18:41 2026 -0700"
      },
      "message": "Merge \"android_boot: Add support for FIT based device tree selection\" into gbl-mainline"
    },
    {
      "commit": "7574196d9b8ba72139e94999cddb9b87a53eb69e",
      "tree": "73b31ef8120a08567fc13ada34b850eb2142844c",
      "parents": [
        "7da396628e22f1db4802bd15eef3a733835d146c",
        "4df231d12a88990ea6c9ce580aa6f3cea355c98b"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Wed Jul 01 04:06:09 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 01 04:06:09 2026 -0700"
      },
      "message": "Merge \"avf: ensure /reserved-memory node is properly initialized\" into gbl-mainline"
    },
    {
      "commit": "7da396628e22f1db4802bd15eef3a733835d146c",
      "tree": "64c1321354b6e01839063edad57ca2ec00861f92",
      "parents": [
        "40a680b465e806411fc74e3d9c55c2a020894046",
        "0c171ec6e5aa10d4d98e0baacf6d388e119c4a7b"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 30 12:29:34 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 30 12:29:34 2026 -0700"
      },
      "message": "Merge \"gbl: Use Clang-bundled Python toolchain\" into gbl-mainline"
    },
    {
      "commit": "4df231d12a88990ea6c9ce580aa6f3cea355c98b",
      "tree": "922f30951c63850a9606a4e0fe95d9be0433682e",
      "parents": [
        "3d2b72535c5c52dc62a267941b0932441e94866d"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Jun 30 12:55:36 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Jun 30 06:00:01 2026 -0700"
      },
      "message": "avf: ensure /reserved-memory node is properly initialized\n\nThe #address-cells, #size-cells, and empty ranges properties are\nmandatory for the /reserved-memory node. If they are missing, the\nkernel cannot translate the addresses and rejects the child reserved\nmemory nodes\n\nEnsure GBL initializes these properties on /reserved-memory before\nadding the pvmfw reservation node.\n\nTest: pVM can be started on GBL-booted CF\nBug: 487788514\nChange-Id: If4fcc8b5d5d16492d1cb072894abf8643e6c144c\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "40a680b465e806411fc74e3d9c55c2a020894046",
      "tree": "5c2ac98f5c3b52a789e05d188894b127d48d6b5a",
      "parents": [
        "c271292faa05e0c14aed0e79c3bd118192614b11"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 29 19:23:44 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 29 20:08:25 2026 +0000"
      },
      "message": "Check stack usage in qemu_boot_memory_test\n\nChecks stack usage limit in qemu_boot_memory_test to ensure that normal\nboot flow stays within maximum allowed stack limit.\n\nBug: 524342608\n\nChange-Id: I8342fb4f8236560cad74f88816837aa8ff3779b0\n"
    },
    {
      "commit": "0c171ec6e5aa10d4d98e0baacf6d388e119c4a7b",
      "tree": "50a94cfef97803ef8cc88b62a30fe5d09aa5f2dc",
      "parents": [
        "e2d6f575ddce02b89cbcab700509ae6d77c96bf7"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 22:14:37 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Mon Jun 29 19:07:57 2026 +0000"
      },
      "message": "gbl: Use Clang-bundled Python toolchain\n\nSwitch GBL to use the Clang-bundled Python toolchain in prebuilts/clang\ninstead of the one in prebuilts/build-tools.\n\nThis change:\n* Instantiates python_toolchain_repository as gbl_python_toolchain in\n  the root MODULE.bazel, passing the shared constants.scl directly via\n  the new `toolchain_version_bzl` attribute.\n* Registers @gbl_python_toolchain//:py_toolchain.\n\nThis completely eliminates the need for any intermediate helper\nrepositories to expose the Clang version, ensuring a clean and minimal\nSingle Source of Truth (SSOT) integration.\n\nTAG\u003dagy\nCONV\u003da5fa1a1d-4a84-4559-9eff-0f1bac1212fc\n\nBug: 526725799\nTest: ./bazel.sh test @gbl//tests\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: Idf8c8d08a5f78075bc3b8578147b6c372a70ded8\n"
    },
    {
      "commit": "c271292faa05e0c14aed0e79c3bd118192614b11",
      "tree": "2739a683b391b36191bd9ddcef886947e205c10c",
      "parents": [
        "e2d6f575ddce02b89cbcab700509ae6d77c96bf7",
        "d99f2b36c2dd01d01d01728234693eb3ae13113f"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 29 11:59:51 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 11:59:51 2026 -0700"
      },
      "message": "Merge \"Add test for maximum GBL stack usage\" into gbl-mainline"
    },
    {
      "commit": "d99f2b36c2dd01d01d01728234693eb3ae13113f",
      "tree": "c554ac39ec17379d63fc1572c9e0d9e88adec5aa",
      "parents": [
        "3d2b72535c5c52dc62a267941b0932441e94866d"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Fri Jun 26 16:24:52 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 29 17:30:02 2026 +0000"
      },
      "message": "Add test for maximum GBL stack usage\n\nEnforces in qemu_trace_test that the maximum stack usage by GBL, in\ncurrently known critical path \"fastboot boot\", is no more than 128\nkilobytes.\n\nBug: 524342608\nChange-Id: I6cac293c81d3e46fddb658a718c714f9403d9346\n"
    },
    {
      "commit": "e2d6f575ddce02b89cbcab700509ae6d77c96bf7",
      "tree": "a4a09557f5dc611ec62a8afd7bffb2c53cfa7bbc",
      "parents": [
        "3d2b72535c5c52dc62a267941b0932441e94866d"
      ],
      "author": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 22:14:00 2026 +0000"
      },
      "committer": {
        "name": "HONG Yifan",
        "email": "elsk@google.com",
        "time": "Fri Jun 26 22:14:00 2026 +0000"
      },
      "message": "gbl: Move Clang version to shared constants.scl\n\nMove the hardcoded Clang version from workspace.bzl to a new shared\nconstants.scl file. This resolves the Single Source of Truth (SSOT)\nviolation and allows other toolchain components to share the same\nversion constant in subsequent changes.\n\nTAG\u003dagy\nCONV\u003da5fa1a1d-4a84-4559-9eff-0f1bac1212fc\n\nBug: 526725799\nTest: ./bazel.sh info\nAssisted-by: Antigravity:Gemini-Next\nChange-Id: I4ed56410a55c7a158af355506af56b504ce06233\n"
    },
    {
      "commit": "b7d6d5487b73e31910b6113d5d00d8585ec6124d",
      "tree": "fa900b41893e00383703131aac4644209d8b2e48",
      "parents": [
        "1bc9d6ae459ea07b6ea509e86337fb46e0111dd5"
      ],
      "author": {
        "name": "Naina Mehta",
        "email": "nainmeht@qti.qualcomm.com",
        "time": "Fri May 08 18:23:35 2026 +0530"
      },
      "committer": {
        "name": "Naina Mehta",
        "email": "nainmeht@qti.qualcomm.com",
        "time": "Fri Jun 26 11:04:13 2026 +0530"
      },
      "message": "android_boot: Add support for FIT based device tree selection\n\nAdd support for FIT based device tree selection.\n1. Parse the FIT FDT and metadata FDT from FIT buffer.\n2. Make a call into firmware for FIT configuration\n   selection.\n3. Identify the base and overlay FDTs for the selected\n   configuration.\n4. Update the selected FIT configuration offset as part\n   of bootconfig.\n      a. androidboot.fit_source\u003d\"dtbo\"\n      b. androidboot.fit_configuration_offset \u003d \"1111\"\n\nSince FIT loading is supported only in DTBO partition,\nupdate the FIT documentation accordingly.\n\nBug:385690995\nChange-Id: I4175dd927994a26adb108e85ffa26eef1cf42423\nSigned-off-by: Naina Mehta \u003cnainmeht@qti.qualcomm.com\u003e\n"
    },
    {
      "commit": "3d2b72535c5c52dc62a267941b0932441e94866d",
      "tree": "8bee0c558208b9db3e638ac0025130d0382977f7",
      "parents": [
        "8bb433b75f85523cd149ee6470db10e121b7e2a0"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 15 20:07:09 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Fri Jun 26 00:28:09 2026 +0000"
      },
      "message": "Support outputing trace buffer in qemu test\n\nWhen tracing is enabled, passes the trace buffer as part of android\nbootconfig and output it in qemu test for analysis.\n\nBug: 524342608\nChange-Id: I857abb7fc17465afa3978d9c54151b3b4a789150\n"
    },
    {
      "commit": "8bb433b75f85523cd149ee6470db10e121b7e2a0",
      "tree": "3029805f6517205aaa91fcd0e0d7a6374c258f4d",
      "parents": [
        "9cd5b98077c92c45c0b8c89b6a3a171fac86790c"
      ],
      "author": {
        "name": "Jakob Vukalovic",
        "email": "jakobvukalovic@google.com",
        "time": "Tue Jun 23 15:48:14 2026 +0000"
      },
      "committer": {
        "name": "Jakob Vukalovic",
        "email": "jakobvukalovic@google.com",
        "time": "Wed Jun 24 10:04:29 2026 +0000"
      },
      "message": "libgbl: Prioritize unlocked state in DICE mode derivation\n\nPrioritize the unlocked state over the recovery mode state when\ndetermining the DICE mode.\n\nPreviously, `prepare_dice_inputs` mapped `(is_recovery\u003dtrue, unlocked\u003dtrue)`\nto `kDiceModeMaintenance`. This was incorrect as an unlocked\nbootloader allows booting custom/unverified images. According\nto the Open Profile for DICE specification, any state where\nsignature verification is bypassed or disabled must map to\n`kDiceModeDebug`. While this is not a direct security risk for\nAVF (pVMs do not run in recovery mode), this is still the correct\nbehavior to comply with the specification.\n\nBug: 508699586\nTest: unit test\nChange-Id: Ia67838b631ace4654afcc26a054ac9bab66269fa\n"
    },
    {
      "commit": "9cd5b98077c92c45c0b8c89b6a3a171fac86790c",
      "tree": "c372203df2d5b92ec33cc33ccbd6d5c121d377cf",
      "parents": [
        "d6e79e66908ec8e896110db5ce360c700e3e5572"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Jun 17 14:38:28 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Jun 23 13:27:17 2026 -0700"
      },
      "message": "GblAvbProtocol is not required for boot on dev images\n\nFor dev images the GblAvbProtocol is marked as optional.\nFix a bug that made a failable check on Avb data structures with no\nfallback.\nClean up various calls to `unwrap`.\n\nTest: Fuchsia dev boot on NUC succeeds, new unit test passes\nFixes: b/526640669\nChange-Id: Ided64b95d4c2bfb5267375f4a799f617e3c266f1\n"
    },
    {
      "commit": "368f29ea637725bbd6c4b4f81fc61b8e1c7ce564",
      "tree": "fa092600e6987b4b8f303245844892ca20be084f",
      "parents": [
        "eaafd23c7573d71ccff50fd7051c7c3852fff8ee"
      ],
      "author": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Wed Jun 10 17:09:55 2026 -0700"
      },
      "committer": {
        "name": "TsaiGaggery",
        "email": "gaggery.tsai@intel.com",
        "time": "Mon Jun 22 14:03:23 2026 -0700"
      },
      "message": "gbl: emit hypervisor props as 1, not \"true\"\n\navf_update_bootconfig() adds the bootconfig properties\nandroidboot.hypervisor.protected_vm.supported and\nandroidboot.hypervisor.vm.supported via add_item(prop, true). A bool\u0027s\nDisplay renders \"true\", but these androidboot.* boolean properties\nfollow the int-bool convention (\"1\"/\"0\"):\n\n  * Android init `on property:\u003cname\u003e\u003d1` triggers do an exact string\n    match, which \"true\" fails.\n  * Platform build.prop and the Trusty/AVF security-VM launcher .rc\n    gate on \u003d1/\u003d0.\n  * SystemProperties.getBoolean() accepts \"true\", but init\u0027s rc\n    matcher does not.\n\nOn a device whose security-VM launcher rc gates on\nproperty:ro.boot.hypervisor.protected_vm.supported\u003d1, GBL writing\n\"true\" means no launcher branch matches: the protected-VM launcher\naction never fires, the Trusty pVM never starts, KeyMint never\nregisters, and keystore2/vold hang at boot.\n\nEmit the integer 1 so the value matches the init-rc / string-match\nconsumers (getBoolean still accepts it), and update the libgbl tests\nasserting the rendered values.\n\nTest: bazel test @gbl//libgbl:libgbl_test\nTest: getprop ro.boot.hypervisor.protected_vm.supported \u003d\u003d 1 on an\n      AVF device; the protected Trusty security VM boots and KeyMint\n      registers.\n\nChange-Id: I2d5a4e4c9ae1a1c99cc3ed201337dc26f491d5cb\n"
    },
    {
      "commit": "d6e79e66908ec8e896110db5ce360c700e3e5572",
      "tree": "69ff2405998a6eed2a06b49d2920577b72212141",
      "parents": [
        "70d5b34526f2766a05ad3c8279cf64ed5b7dc996",
        "949c26d8b9b5f6b45eb5b5b23770cc4b64cfc219"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jun 22 09:34:39 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 22 09:34:39 2026 -0700"
      },
      "message": "Merge \"Uprev clang to r596125\" into gbl-mainline"
    },
    {
      "commit": "949c26d8b9b5f6b45eb5b5b23770cc4b64cfc219",
      "tree": "128067955e739eb9ccce6f6f963b171d3d1d7b79",
      "parents": [
        "5860671e9b601bc89506df22e7f62710eb0cf168"
      ],
      "author": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Tue Jun 16 16:20:43 2026 -0700"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Mon Jun 22 08:52:34 2026 -0700"
      },
      "message": "Uprev clang to r596125\n\nAdd -Wno-invalid-constexpr to cc_flags_common to fix\ncompilation errors with constexpr intrinsics in new\nclang headers.\n\nBug: 524750479\nBug: 524744888\nTest: ./bazel.sh test @gbl//tests\nTest: ./bazel.sh run \\\n        //bootable/libbootloader:gbl_efi_dist\n\nAssisted-by: Jetski:Gemini Next\nTest: Treehugger\nChange-Id: I6da4ecd5ae4b90b47be41ac8f2227ce21f8c54ba\n"
    },
    {
      "commit": "70d5b34526f2766a05ad3c8279cf64ed5b7dc996",
      "tree": "7257b35e8801b92f05d8a4972eac7c922bf66ce2",
      "parents": [
        "c6260b9f2d0bad7399a56a1bd97277892f904d1a",
        "f6745ec3d1cbd7af7d0fd5a31494351346e9a7c9"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jun 18 15:29:25 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 18 15:29:25 2026 -0700"
      },
      "message": "Merge \"Add qemu test for boot memory\" into gbl-mainline"
    },
    {
      "commit": "f6745ec3d1cbd7af7d0fd5a31494351346e9a7c9",
      "tree": "ce399930aa2e9ce3ca093480ba9ab406d9670e39",
      "parents": [
        "5860671e9b601bc89506df22e7f62710eb0cf168"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jun 17 22:10:50 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jun 18 19:49:49 2026 +0000"
      },
      "message": "Add qemu test for boot memory\n\nGBL\u0027s management of boot memory buffers on the EFI side is critical to\nensure buffer usage safety. However there isn\u0027t a test that exercise the\ncode path due to lack realistic EFI environment. The CL adds a qemu\ntest for it to address the missing coverage.\n\nBug: 525176052\nChange-Id: I5426eb27ec5a43bbe641f8d96d25ddebdcdd47c3\n"
    },
    {
      "commit": "c6260b9f2d0bad7399a56a1bd97277892f904d1a",
      "tree": "63d4f7360b6f1d1e1ef62930522dcd2385054b1d",
      "parents": [
        "5860671e9b601bc89506df22e7f62710eb0cf168"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Jun 16 23:00:40 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Jun 16 23:00:40 2026 +0000"
      },
      "message": "Adopt PQC AVB support\n\nBug: 413054304\nChange-Id: Iadcf7a6cc48a7d941036d05e13a72e23fe729252\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "b31b700e8ad0358bca3359edcd3def6eaef1f42d",
      "tree": "a2c7e7a4f27a9c46574ba9f5ccd86e5d6d5ad101",
      "parents": [
        "5860671e9b601bc89506df22e7f62710eb0cf168"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Mon Apr 27 15:58:38 2026 -0600"
      },
      "committer": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@google.com",
        "time": "Tue Jun 16 10:01:22 2026 -0600"
      },
      "message": "libstorage: Statically assert GPT entry size is 128 bytes\n\nCurrently code implicitly assumes GPT entry size equals 128 bytes.\nStatically assert that assumption for now. In the future, when GPT entry\nsize is greater than 128 bytes then GPT_ENTRY_SIZE must be updated to\nthe next power of 2 and the entire code must be updated to use\nGPT_ENTRY_SIZE instead of sizeof::\u003cGptEntry\u003e().\n\nChange-Id: I259cd8b2cd7c77a35137e40ae7c24f5b706f0607\nSigned-off-by: Karthikeyan Ramasubramanian \u003ckramasub@google.com\u003e\n"
    },
    {
      "commit": "5860671e9b601bc89506df22e7f62710eb0cf168",
      "tree": "a80388c6a5920b7bd387bf1e25edac64d94c7761",
      "parents": [
        "1ed62131c1ec02ad0b253e6e16ca86713e11db4c",
        "02a9e8b8ccad3b6232394e3c4bde63b5baa711ef"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 15 12:21:26 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 15 12:21:26 2026 -0700"
      },
      "message": "Merge \"Enable pthread for host boringssl build\" into gbl-mainline"
    },
    {
      "commit": "1ed62131c1ec02ad0b253e6e16ca86713e11db4c",
      "tree": "1a40ccf7b68e6051c754b9fd63d644091790487c",
      "parents": [
        "938a447b906cf5fc24e40ae9b94623dc790839c7",
        "88254fccff5c3eaf71b81fb78ea0edd654e9120e"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 15 10:14:23 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 15 10:14:23 2026 -0700"
      },
      "message": "Merge \"Improvement of qemu test utils\" into gbl-mainline"
    },
    {
      "commit": "938a447b906cf5fc24e40ae9b94623dc790839c7",
      "tree": "3390bc89058a57995fe3b312e1d339baea2cabb7",
      "parents": [
        "d5c6afc58f96bfc56cae520cb74cb5453eb9a296",
        "ae7cb3aed2290dec88ddfe059c1aa05920789c89"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Fri Jun 12 12:59:46 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 12 12:59:46 2026 -0700"
      },
      "message": "Merge \"Enable BTI for qemu test\" into gbl-mainline"
    },
    {
      "commit": "02a9e8b8ccad3b6232394e3c4bde63b5baa711ef",
      "tree": "08b4a6a794064990430a644660d8b12b467c5067",
      "parents": [
        "1bc9d6ae459ea07b6ea509e86337fb46e0111dd5"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jun 10 18:07:41 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jun 10 18:40:27 2026 +0000"
      },
      "message": "Enable pthread for host boringssl build\n\nRemoves \"-DANDROID_BAREMETAL\" for linux host build, so that boringssl\nAPIs used in unittests have proper pthread and synchronization support.\nRestore sysdeps_test to be multithreaded.\n\nTested by invoking the sysdeps_test binary directly (without bazel\ninternal thread limit) for various iteration sizes (100, 500, 1000).\nFlake rate:\n\n| Version | Iteration Count | Successes | Failures | Flake Rate |\n| :--- | :--- | :--- | :--- | :--- |\n| **Before Fix** | 100 | 96 | 4 | **4.00%** |\n| **Before Fix** | 500 | 484 | 16 | **3.20%** |\n| **Before Fix** | 1000 | 984 | 16 | **1.60%** |\n| **After Fix** | 100 | 100 | 0 | **0.00%** |\n| **After Fix** | 500 | 500 | 0 | **0.00%** |\n| **After Fix** | 1000 | 1000 | 0 | **0.00%** |\n\nBug: 516910638\nChange-Id: I08792af605ecfb741e7415472841a677bc4e3461\n"
    },
    {
      "commit": "d5c6afc58f96bfc56cae520cb74cb5453eb9a296",
      "tree": "1075b6cf42b32a8b068468b610657854a80fff66",
      "parents": [
        "2f844c0b008f084d6567f0e9c204051d2206b9e7",
        "5d125418dd5638733ea3d77b83b1858de5ba2dd4"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Wed Jun 10 11:33:35 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 10 11:33:35 2026 -0700"
      },
      "message": "Merge \"GBL dev build uses default Avb status if GblAvbProtocol is absent\" into gbl-mainline"
    },
    {
      "commit": "2f844c0b008f084d6567f0e9c204051d2206b9e7",
      "tree": "5dc00088f269c26292d3163a74e80cfc0cc551d0",
      "parents": [
        "d9ab59141ef8f38b30280a5701289d7ef9137be9",
        "993fb5d68c9cec441436e0516f3091694a9f986b"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jun 10 11:04:54 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 10 11:04:54 2026 -0700"
      },
      "message": "Merge \"Forward blockIo error as it is\" into gbl-mainline"
    },
    {
      "commit": "d9ab59141ef8f38b30280a5701289d7ef9137be9",
      "tree": "6df7d3a68c42782ec7b105ce7a06375cbe673c60",
      "parents": [
        "a43e064ecfb360985721b67ff29462dfd2e6c5f5",
        "4e5510ee34815d7b83134f885ca33aff1ffced7d"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 09 22:09:18 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 09 22:09:18 2026 -0700"
      },
      "message": "Merge \"Support dt_table v1 and v2\" into gbl-mainline"
    },
    {
      "commit": "a43e064ecfb360985721b67ff29462dfd2e6c5f5",
      "tree": "a5ee14cf473328ad162a18ad990c33561d5c33f4",
      "parents": [
        "d4d75c7894376862746fc920925d30c333d6e289",
        "56a81c6d890906d22a87ac0695415d60b24b1573"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 09 21:16:25 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 09 21:16:25 2026 -0700"
      },
      "message": "Merge \"Uprev to rust toolchain 1.95.0\" into gbl-mainline"
    },
    {
      "commit": "d4d75c7894376862746fc920925d30c333d6e289",
      "tree": "9c4c33dc89d46a558933690478c0a2b2bd3f77ef",
      "parents": [
        "eaafd23c7573d71ccff50fd7051c7c3852fff8ee"
      ],
      "author": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Wed Jun 10 01:19:33 2026 +0100"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Tue Jun 09 20:34:30 2026 -0700"
      },
      "message": "Require exact LLVM version match for Cross-Language LTO\n\nThe Rust 1.95 uprev introduced a mismatch between the LLVM version\nused by rustc (22.0.2) and the one used by Clang/LLD (22.0.1).\nThis caused linker errors due to unknown LLVM bitcode attributes\nwhen Cross-Language LTO was enabled.\n\nLLVM bitcode is not guaranteed to be forward-compatible, so a reader\nwith an older LLVM version (Clang/LLD 22.0.1) cannot reliably read\nbitcode produced by a newer writer (Rustc 22.0.2).\n\nUpdate the version matching logic to require an exact match of the\nfull LLVM version string (major.minor.patch) instead of just the\nmajor version. This safely disables Cross-Language LTO when there is\na mismatch, and it will automatically re-enable when Clang is updated.\n\nBug: 419624930\nCONV\u003da49b5ef9-49c4-4871-a888-33356686fdd9\nAssisted-by: Jetski:Gemini Next\nTest: Treehugger\nChange-Id: Ifd52ef0f6d90634140d88a7319b1fd457700f911\n\nChange-Id: I7a465d6b569b500220f430ab401071c3c3897315\n"
    },
    {
      "commit": "993fb5d68c9cec441436e0516f3091694a9f986b",
      "tree": "faa672f2bdff28aefce41e20dd30564cbf62686a",
      "parents": [
        "1bc9d6ae459ea07b6ea509e86337fb46e0111dd5"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jun 09 23:28:16 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jun 09 23:28:16 2026 +0000"
      },
      "message": "Forward blockIo error as it is\n\nForward BlockIo/2 error as it is so that concurrent flashing code can\ncorrectly capture the OutOfResource error as a signal of retry rather\nthan abort.\n\nBug: 491552007\nChange-Id: I6f0bd24ff0fd10f9b1b1a72833e28bdd61d18bad\n"
    },
    {
      "commit": "ae7cb3aed2290dec88ddfe059c1aa05920789c89",
      "tree": "467461e54e0e292defb64576d3460ccf7cb9bcf1",
      "parents": [
        "1bc9d6ae459ea07b6ea509e86337fb46e0111dd5"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jun 09 16:54:19 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jun 09 23:22:18 2026 +0000"
      },
      "message": "Enable BTI for qemu test\n\nMarks execution pages of GBL guarded to enable BTI enforcement.\n\nTest: Locally remove ENABLE_BTI flag for TF-A library and observe a\nbranch target exception when calling its API i.e. flush_dcache_buffer\n\nBug: 521858819\nChange-Id: I68412d0b82628eb34a2bc59a20baf54a87bc86f4\n"
    },
    {
      "commit": "5d125418dd5638733ea3d77b83b1858de5ba2dd4",
      "tree": "255d99db60e2c70a9b60ba94338010619e38a192",
      "parents": [
        "eaafd23c7573d71ccff50fd7051c7c3852fff8ee"
      ],
      "author": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Jun 09 10:58:09 2026 -0700"
      },
      "committer": {
        "name": "Dov Shlachter",
        "email": "dovs@google.com",
        "time": "Tue Jun 09 16:05:15 2026 -0700"
      },
      "message": "GBL dev build uses default Avb status if GblAvbProtocol is absent\n\nFlashing is gated by whether a device is unlocked. Device lock status\nis tracked by the GblAvbProtocol, but this is not required during\ndevice bringup, and device flashing should not be gated on the\npresence of the protocol for devlopment builds.\n\nBug: b/521978099\n\nFix: b/513618347\n\nChange-Id: I636fc866cf7fd17a7c7bf4f9033f52588d79833d\n"
    },
    {
      "commit": "56a81c6d890906d22a87ac0695415d60b24b1573",
      "tree": "3e87cb1caef1dab5e14bb493edf2e5d6795fd0d5",
      "parents": [
        "eaafd23c7573d71ccff50fd7051c7c3852fff8ee"
      ],
      "author": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Mon May 18 03:16:59 2026 +0100"
      },
      "committer": {
        "name": "Ram Muthiah",
        "email": "rammuthiah@google.com",
        "time": "Tue Jun 09 23:55:14 2026 +0100"
      },
      "message": "Uprev to rust toolchain 1.95.0\n\nInclude unstable options by default.\nThe linux kernel did something similar to use 1.95.0 [1].\n\nCustom target specifications are unstable, `rustc` requires\nexplicitly passing `-Zunstable-options` to use it [2].\n\nBug: 419624930\nLink: https://lore.kernel.org/all/20260206204535.39431-1-ojeda@kernel.org/ [1]\nLink: https://github.com/rust-lang/rust/pull/151534 [2]\nChange-Id: I808b68df912aebf08bf6ec774779292522b21aa6\n"
    },
    {
      "commit": "4e5510ee34815d7b83134f885ca33aff1ffced7d",
      "tree": "dfdf2f26db2fa5fe72ec27968e2e146c26f1c5e1",
      "parents": [
        "eaafd23c7573d71ccff50fd7051c7c3852fff8ee"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Mon Jun 08 22:38:29 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Tue Jun 09 17:17:40 2026 +0000"
      },
      "message": "Support dt_table v1 and v2\n\nBug: 521517425\nTest: unittests\nChange-Id: Ifa1cf24c2531a39bbd8a2c0f90840a73b9a6ee30\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "88254fccff5c3eaf71b81fb78ea0edd654e9120e",
      "tree": "d213dd1402570aa625ea41dc684b151c327d4f74",
      "parents": [
        "1bc9d6ae459ea07b6ea509e86337fb46e0111dd5"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 08 22:22:33 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jun 09 16:06:44 2026 +0000"
      },
      "message": "Improvement of qemu test utils\n\nMakes the following improvement:\n\n1. Add walltime stamp to host log\n2. Wait for a fastboot ready log before connecting to vsock.\n3. Fix timeout and clean up sequence in qemu_launcher.py\n\nBug: 499359597\nChange-Id: Iac82330d9b7e32d5c45d19d65cf5ac8e05e08249\n"
    },
    {
      "commit": "eaafd23c7573d71ccff50fd7051c7c3852fff8ee",
      "tree": "1e206354afbb6a0b2687c84060289cb850cd447f",
      "parents": [
        "1bc9d6ae459ea07b6ea509e86337fb46e0111dd5",
        "fe666bfd4ceae4700e287c9b520eede2eb531e64"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Mon Jun 08 03:44:12 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 08 03:44:12 2026 -0700"
      },
      "message": "Merge changes from topic \"build-finger-and-vcs\" into gbl-mainline\n\n* changes:\n  Gather and record build fingerprint and vcs info in bootconfig\n  Revert \"Record build variant and git branch/rev in bootconfig\"\n"
    },
    {
      "commit": "1bc9d6ae459ea07b6ea509e86337fb46e0111dd5",
      "tree": "73becd3d30f48d537c3421f7e065b99da345b896",
      "parents": [
        "20f5596f57cce6087e2d00bbf1dca1c14fe5f3ac"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Fri Jun 05 16:41:29 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Fri Jun 05 21:02:24 2026 +0000"
      },
      "message": "Add emulator based fastboot reboot test\n\nSupports interacting with qemu via fastboot over vsock with a host test\nscript. Implements an fastboot reboot test using this feature.\n\nBug: 499359597\nChange-Id: Ie2ab37338b078f0ca50ce8e5cbe5bae30b1d2ff1\n"
    },
    {
      "commit": "20f5596f57cce6087e2d00bbf1dca1c14fe5f3ac",
      "tree": "018acbae8a6373a6012287828363478b05f7423b",
      "parents": [
        "0d75dc7393dda7232229dd7280cfa4923cf348d0",
        "a82f411e308db75f2ce6eaa05c9c5466faa95cde"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Fri Jun 05 09:12:40 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 05 09:12:40 2026 -0700"
      },
      "message": "Merge \"Process fdt and bootconfig in test kernel\" into gbl-mainline"
    },
    {
      "commit": "fe666bfd4ceae4700e287c9b520eede2eb531e64",
      "tree": "c01bcc071477353659a7d9ce30d26199b8e9bf7b",
      "parents": [
        "4b2918a1982a308bb9ea34e4e095f1b4afa27ed8"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Wed Jun 03 19:14:42 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jun 05 13:00:38 2026 +0800"
      },
      "message": "Gather and record build fingerprint and vcs info in bootconfig\n\nBuild info logic are all moved into workspace_status.sh and\nlibbuild_number.\n\nBuild fingerprint captures the characteristic of the build, like\nversion, build incremental number, and dev/prod flag.\n\nBuild VCS info captures the source origin of the build, like git branch\nand revision.\n\nBuild metadata are gathered via bazel build stamping mechanism.\nBuild number must be specified in the environ.\nGit branch must be specified in the build system config or environ.\nGit revision is detected automatically if a git tree is found.\n\nPreview:\n```\nFingerprint: prod/mainline-18/P125976338\nVCS info: gbl-mainline:f5ff414f0e6f\n```\n\nBug: 517573530\nTest: Run unit tests\nChange-Id: I071ce963d308a5de027819d232509544b4ed88d1\n"
    },
    {
      "commit": "0d75dc7393dda7232229dd7280cfa4923cf348d0",
      "tree": "bebf5f5c5bbc947393fa730d9e03d3862b21669d",
      "parents": [
        "73a0f73841faae9b66e284760ceae35299d4770c"
      ],
      "author": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Tue Jun 02 23:40:54 2026 +0000"
      },
      "committer": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Thu Jun 04 18:44:54 2026 -0700"
      },
      "message": "gbl: Clean up unused stubs/headers\n\n* Removed unused stubs, declarations, and headers that are no longer\n  needed since BoringSSL is compiled with -U_WIN32:\n  * Removed functions: `fopen` (declaration and stub), `remove` (stub),\n    `puts` (stub), `tolower_l`, `toupper_l`.\n  * Removed `is*_l` functions from `locale.h` (except `isdigit_l` and\n    `isxdigit_l`).\n  * Removed unused headers: `fcntl.h`, `io.h`, `limits.h`, `features.h`.\n  * Removed unused `locale.h` and `nl_types.h` inclusions from `stdlib.c`.\n\nBug: 413054304\n\nTAG\u003dagy\nCONV\u003d704a4d01-7aad-4654-a0d8-de102869ef35\n\nChange-Id: I195eca6e7fa60d7b57e32550a066f51babf431d2\n"
    },
    {
      "commit": "73a0f73841faae9b66e284760ceae35299d4770c",
      "tree": "e78b3f509578e7131ec2e98bdeb337934d31f745",
      "parents": [
        "3d9ab9b04e85930e00e6b14928ae5d01d330d811",
        "733481515837c234cc8f120e8d8d61d0d47e1ff4"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Jun 04 17:59:13 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 04 17:59:13 2026 -0700"
      },
      "message": "Merge \"GBL BoringSSL: Enable ASM for x86_64 Linux host\" into gbl-mainline"
    },
    {
      "commit": "733481515837c234cc8f120e8d8d61d0d47e1ff4",
      "tree": "8f6a385d1767bda0c2698c565cdf38e6844cec19",
      "parents": [
        "61bb3d6a6fc7ee2678c0423fbc821b7b0d18a6c7"
      ],
      "author": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Thu Jun 04 06:31:45 2026 +0000"
      },
      "committer": {
        "name": "Sergii Parubochyi",
        "email": "sergiip@google.com",
        "time": "Thu Jun 04 17:21:27 2026 -0700"
      },
      "message": "GBL BoringSSL: Enable ASM for x86_64 Linux host\n\nSeparate x86_64 target configuration into x86_64_linux (host)\nand x86_64_efi (baremetal). Enable assembly optimizations\nfor the host target to speed up tests, while keeping them\ndisabled (C-only) for baremetal UEFI due to toolchain and\ncompatibility constraints.\n\nChange-Id: I377b969a27908ae557d9a651e0b3be31cd100f63\n"
    },
    {
      "commit": "3d9ab9b04e85930e00e6b14928ae5d01d330d811",
      "tree": "90ec761be419844727d719b3ead09c38d339031a",
      "parents": [
        "6600f4051ecc23ce6054057188a7e4ec96bcd804"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Thu Jun 04 00:36:47 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Thu Jun 04 21:15:56 2026 +0000"
      },
      "message": "Increase amount of overlays GBL can apply from 16 to 32\n\nBug: 397744185\nChange-Id: I4fdef1e1c2a5844be376f60c0ae6415061bd628f\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "6600f4051ecc23ce6054057188a7e4ec96bcd804",
      "tree": "325e4a5103b79a73961c7fccc1d3d1a9c6916e63",
      "parents": [
        "61bb3d6a6fc7ee2678c0423fbc821b7b0d18a6c7"
      ],
      "author": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Thu Jun 04 00:30:40 2026 +0000"
      },
      "committer": {
        "name": "Dmitrii Merkurev",
        "email": "dimorinny@google.com",
        "time": "Thu Jun 04 21:15:49 2026 +0000"
      },
      "message": "Increase DT components limit from 256 to 512\n\nBy utilizing dynamic allocation instead of stack\n\nBug: 397744185\nBug: 374336105\nChange-Id: Ifdb2c8bca2dd09a34425e1f0efffddfb5c401c7c\nSigned-off-by: Dmitrii Merkurev \u003cdimorinny@google.com\u003e\n"
    },
    {
      "commit": "a82f411e308db75f2ce6eaa05c9c5466faa95cde",
      "tree": "9201cdaa83262f28eb98fae9f9db2c87c45417ad",
      "parents": [
        "61bb3d6a6fc7ee2678c0423fbc821b7b0d18a6c7"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jun 04 20:02:46 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Thu Jun 04 20:10:05 2026 +0000"
      },
      "message": "Process fdt and bootconfig in test kernel\n\nExtracts fdt and bootconfig in test kernel for future testing\n\nBug: 499359597\nChange-Id: I5cfa686812c89e824d4180546d9a8b31a8856a5e\n"
    },
    {
      "commit": "4b2918a1982a308bb9ea34e4e095f1b4afa27ed8",
      "tree": "341e49fb02df2cb853edbfc7a32d244d0dc028a3",
      "parents": [
        "acd5776006f1856cefdedf3c315c16beabf4638e"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Thu Jun 04 10:22:03 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Jun 04 10:22:03 2026 -0700"
      },
      "message": "Revert \"Record build variant and git branch/rev in bootconfig\"\n\nThis reverts commit acd5776006f1856cefdedf3c315c16beabf4638e.\n\nReason for revert: Since repository_rule does not always run for each run, we could be recording cached workspace status from previous run.\n\nBug: 517573530\nChange-Id: I1a7605219c117d6478e3630ec5f0fa18ee81fa6d\n"
    },
    {
      "commit": "61bb3d6a6fc7ee2678c0423fbc821b7b0d18a6c7",
      "tree": "cd4b5ec3ec67667b9b7ec97ad3bef8deb7ee8812",
      "parents": [
        "61e7cabd74452a7ae503167f9c31b244bc28844c",
        "acd5776006f1856cefdedf3c315c16beabf4638e"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Jun 03 15:45:33 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 03 15:45:33 2026 -0700"
      },
      "message": "Merge \"Record build variant and git branch/rev in bootconfig\" into gbl-mainline"
    },
    {
      "commit": "61e7cabd74452a7ae503167f9c31b244bc28844c",
      "tree": "afbb6f27bcf97aa00e354e320a77d493cf32e8ac",
      "parents": [
        "94d8cf245fae00e5e9ebe286d1c485ae3e351e01",
        "4170026d994f6424912a72a0aef5bac2250066c7"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Wed Jun 03 11:51:49 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jun 03 11:51:49 2026 -0700"
      },
      "message": "Merge \"Implement fastboot over vsock for GBL qemu test\" into gbl-mainline"
    },
    {
      "commit": "acd5776006f1856cefdedf3c315c16beabf4638e",
      "tree": "411b5bd15928454aded11c52ce4083ba50228a84",
      "parents": [
        "94d8cf245fae00e5e9ebe286d1c485ae3e351e01"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Wed Jun 03 19:14:42 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Thu Jun 04 02:25:13 2026 +0800"
      },
      "message": "Record build variant and git branch/rev in bootconfig\n\nBuild variant (debug vs. prod) is detected automatically.\nGit branch must be specified in the build system config.\nGit revision is detected automatically if a git tree is found.\n\nPreview:\n```\n[ro.boot.gbl.variant]: [dev:gbl-mainline:f8e36f3bc34f5761af2860acf4874553120533d7]\n```\n\nBug: 517573530\nTest: boot and check system properties\nChange-Id: I18be5199dfdee07ff7279af8bedbb9b60c86204e\n"
    },
    {
      "commit": "4170026d994f6424912a72a0aef5bac2250066c7",
      "tree": "1cf944e2f5acba8501b13ad68a36bf2d38476996",
      "parents": [
        "0ca9b1145d0fa9ca4d1a027f2a9d4072401462ca"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 01 22:20:28 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Tue Jun 02 17:34:19 2026 +0000"
      },
      "message": "Implement fastboot over vsock for GBL qemu test\n\nImplement GBL fastboot transport protocol for vosck channels. It uses\nthe same wire format protocol of fastboot over TCP.\n\nBug: 486979232\nChange-Id: Ibcd64ac162c3919e27a108425d070945c3652788\n"
    },
    {
      "commit": "94d8cf245fae00e5e9ebe286d1c485ae3e351e01",
      "tree": "341e49fb02df2cb853edbfc7a32d244d0dc028a3",
      "parents": [
        "0ca9b1145d0fa9ca4d1a027f2a9d4072401462ca"
      ],
      "author": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jun 02 15:39:18 2026 +0000"
      },
      "committer": {
        "name": "Ulises Mendez Martinez",
        "email": "umendez@google.com",
        "time": "Tue Jun 02 15:48:04 2026 +0000"
      },
      "message": "Fix Bzlmod switch build failure due to dangling BUILD symlink\n\nWhen switching from a GBL config to a GKI config and back, the GBL build\nwould fail on the first attempt. This was because `gbl_new_local_repository`\nwas creating a symlink for the `BUILD` file pointing to a path inside the\n`@gbl` module.\n\nDuring GKI builds, the `gbl` module is overridden to a fake path, making\nthis symlink dangling. When switching back to GBL, Bazel attempted to reuse\nthe cached repository (like `rust_prebuilts`) and tried to read its `BUILD`\nfile before the `@gbl` module symlink was updated to the real path,\nleading to a \"BUILD file not found\" error.\n\nThe fix consists of copying the `BUILD` file content instead of symlinking\nit in `gbl_new_local_repository.bzl`. This avoids any dangling symlinks\nwhen module overrides change.\n\nWhy it doesn\u0027t affect anything else:\n- The fix only changes `gbl_new_local_repository` which is used to assemble\n  local repositories with custom BUILD files.\n- Instead of a symlink, it now creates a regular file with the same\n  content. The content of the `BUILD` file remains exactly the same, so the\n  subsequent build rules and targets are completely unaffected.\n- Other rules like `gbl_rust_crate_repository` already used `repo_ctx.file`\n  to write `BUILD` files and were unaffected.\n\nTested: \\\n  tools/bazel clean --expunge \\\n  tools/bazel build //bootable/libbootloader:gbl_efi_dist --config\u003dgbl --nobuild \\\n  tools/bazel build //common:kernel_aarch64 --nobuild \\\n  tools/bazel build //bootable/libbootloader:gbl_efi_dist --config\u003dgbl --nobuild \\\nAssisted-by: Antigravity:Gemini-Next\nBug: 455003354\nChange-Id: I4278604eb065d2697a531b1a1391ac142dec8439\n"
    },
    {
      "commit": "0ca9b1145d0fa9ca4d1a027f2a9d4072401462ca",
      "tree": "a5366c92080b377bc38791e77eda9618c517f334",
      "parents": [
        "f9c009226cebcf3d0fce00b9171c3777cdcc43ff"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri May 29 02:45:29 2026 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Mon Jun 01 23:28:23 2026 -0700"
      },
      "message": "Re-land \"Dynamically search for the AVB footer\"\n\nBug: 517575663\nTest: ./bazel.sh test @gbl//tests\nChange-Id: I5f5f6339bd7e153b46f2bd1fa3f807c9c11f7ada\n"
    },
    {
      "commit": "f9c009226cebcf3d0fce00b9171c3777cdcc43ff",
      "tree": "c928c2199973fc707e520f59430c2c3efb985535",
      "parents": [
        "b496e15d8060047b37f779df5539860f3f54496b",
        "539ac2dcd8f7324985f48cdb97ea212385e11536"
      ],
      "author": {
        "name": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Jun 01 16:49:09 2026 -0700"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 01 16:49:09 2026 -0700"
      },
      "message": "Merge \"Implement provider API for GblEfiFastbootTransport\" into gbl-mainline"
    },
    {
      "commit": "539ac2dcd8f7324985f48cdb97ea212385e11536",
      "tree": "658c14ab2401cfd2d4681cda89ac568fc68ac8b8",
      "parents": [
        "4ccf8d04d7a6ee61634f1a01c4be1712bf42c022"
      ],
      "author": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 01 23:22:01 2026 +0000"
      },
      "committer": {
        "name": "Yecheng Zhao",
        "email": "zyecheng@google.com",
        "time": "Mon Jun 01 23:22:01 2026 +0000"
      },
      "message": "Implement provider API for GblEfiFastbootTransport\n\nBug: 486979232\nChange-Id: Ifa83e511ce833d3844373bd07cdd4bca927dfef9\n"
    }
  ],
  "next": "b496e15d8060047b37f779df5539860f3f54496b"
}
