)]}'
{
  "log": [
    {
      "commit": "e194270ba5142264fa5b81c7be55f672f557e248",
      "tree": "00711c93e60e872ca622b45ca3256c48af98d23a",
      "parents": [
        "6b0a2a79d6e1921180ec514781a99bb76f7cd120"
      ],
      "author": {
        "name": "Jason Macnak",
        "email": "natsu@google.com",
        "time": "Tue May 21 16:03:49 2024 +0000"
      },
      "committer": {
        "name": "Jason Macnak",
        "email": "natsu@google.com",
        "time": "Fri Jun 14 16:19:37 2024 -0700"
      },
      "message": "Use a wrapper around ANW to allow updating Surface\n\nGpuDisplaySurface are roughly created once per \"display in the\nguest\". Prior to this change, the Surface from the viewer app would\nbe saved in the AndroidSurface once at initial startup. However,\nwhen the viewer app is moved to the background, the underlying\nSurface is destroyed. After this point, the Surface saved in\nAndroidSurface is no longer valid. This change updates\nAndroidSurface to save a pointer to a ANativeWindowWrapper struct,\nwhich contains the latest Surface, if any, and which can be updated\nby DisplayService.\n\nNote: this does not fix the app resuming issue.\n\nBug: b/334903567\nTest: launch ferrochrome,\n      move to viewer to background,\n      move viewer back to foreground\nChange-Id: I647de0a7735280a757e392e878fce86f559d5a74\n"
    },
    {
      "commit": "ae625b6b15ce3ed130eadd595c23130e56a8869d",
      "tree": "c577f7e35abdaee314237310ee353dfa912636e9",
      "parents": [
        "03b3347b12177a9284f92f1d4281f6863df490eb"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 13 21:47:52 2024 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Jun 13 21:47:52 2024 +0900"
      },
      "message": "Add sizeof(swiotlb) to the mem size of pKVM pVMs\n\nPreviously (and even with this change), under pKVM, protected VMs\nreserve some amount of memory as swiotlb. It is to share buffers for\nvirtio devices with the host safely. See [1] for more detail.\n\nThis however meant protected VMs, when compared to non-protected VMs,\ngot \"effectively\" smaller amount of RAM available. For VMs running\nMicrodroid, the swiotlb size is current 14 MB.\n\nThis CL fixes such an inconsistent experience across protected and\nnon-protected VMs. To counter balance the reserved memory for swiotlb,\nthis CL adds sizeof(swiotlb) (i.e. 14 MB currently) to protected VMs\nrunning under pKVM.\n\nOther hypervisors (GenieZone and Gunyah) don\u0027t need this treatment\nbecause they statically allocate swiotlb outside of guest RAM.\n\nBug: 346770542\nTest: watch our benchmark\n\n[1] https://source.android.com/docs/core/virtualization/architecture#virtio\n\nChange-Id: I82eb8796b248d4f6a189824841c245186cea2075\n"
    },
    {
      "commit": "a6589bdcccce47314f648573cc53dcc9f6a5b666",
      "tree": "9d7cc1c2274e03500d6f7cdb44c226f9c96bf679",
      "parents": [
        "8e68bfbc30a497196f0dbec641d0e118c883abb7"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Tue Jun 11 10:14:07 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Wed Jun 12 15:33:12 2024 +0900"
      },
      "message": "Expose network support configuration into AVF Java Framework API\n\nBug: 340376951\nTest: atest MicrodroidTests\nTest: atest MicrodroidTestAppNoInternetPerm\n\nChange-Id: I107de04e4c2890936a9c3fb4d6f61b8aff509ace\n"
    },
    {
      "commit": "8dd3255293547822eaff97657d2b312bcaa80f89",
      "tree": "14b28e752f75adb740bbf040d8a9931ed599854a",
      "parents": [
        "55e57b98cdb27d292b80a07a5881a8b46f0ee8c4"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Wed May 22 19:38:16 2024 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Mon Jun 03 17:35:49 2024 +0800"
      },
      "message": "Configure serial console input device\n\nDefaults to hvc0, which is the status quo and also the console device\nMicrodroid uses.\nAllows configure to ttyS0, which is the actual device Ferrochrome uses.\nNote: Need to update Ferrochrome vm_config.json\n\nBug: 335362012\nTest: atest MicrodroidTestApp --test-filter com.android.microdroid.test.MicrodroidTests#testConsoleInputSupported\u0027.*\u0027\nTest: Start vmlauncher_app and connect to VM console\nChange-Id: I2e74abfbec2a9b7fb9b3642cc529eca4be9f0fdc\n"
    },
    {
      "commit": "a90bf5bbd35969eedb246f65bc4a7e42bb927833",
      "tree": "0be416c85eaafd9d2081becaf16273507b679750",
      "parents": [
        "3230cd989e99de2db0e981740eb6ebedb95aa218"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri May 24 18:40:05 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Thu May 30 15:24:18 2024 +0900"
      },
      "message": "Support cursor inside vm in VmLauncherApp\n\n1. cursor size is always 64x64 according to virtio-gpu spec\n2. create a surfaceview of which size is 64x64\n3. pass the surfaceview to crosvm as a cursor surface\n4. receive set_position event, and then move the view properly\n\nBug: 327559087\nTest: check cursor in vm\nChange-Id: I862a90d1703f0eaf068fbc91d66ea35f2645e2aa\n"
    },
    {
      "commit": "569d56e364426458106260488192feb22e7e8648",
      "tree": "200670e0a2565365e6a081c48035f8cd56e48f56",
      "parents": [
        "f20b95675ae9e63bfa8974e0a34545ea259e2017",
        "ff3811104599608ef606b6a530d718ef6f411c8e"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu May 23 13:38:43 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 23 13:38:43 2024 +0000"
      },
      "message": "Merge \"[dice] Read the COSE key algorithm from DICE library\" into main"
    },
    {
      "commit": "ff3811104599608ef606b6a530d718ef6f411c8e",
      "tree": "4675a248530ef3e94816109e4057aa628e94f2d3",
      "parents": [
        "d47ad8b61add656be0c6d3d59ec4283c35949e00"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed May 22 12:14:39 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu May 23 10:54:12 2024 +0000"
      },
      "message": "[dice] Read the COSE key algorithm from DICE library\n\nInstead of hard-coding it.\n\nThis allows users to use different types of keys underneath as\nneeded.\n\nBug: 342333212\nTest: atest VmAttestationTest\nChange-Id: I2751cbda79c1f8bd7980ac3ddcae6a9a5922b682\n"
    },
    {
      "commit": "a9b345f35b39e25b049164fc7268f22955bb2f64",
      "tree": "1068e4303b5b4966c7ba1e8b88ee22b21e184fa4",
      "parents": [
        "000f5b40ac30bd41924838071d71eb27d6861f15"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Sat Apr 27 01:01:42 2024 +0100"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed May 22 10:34:53 2024 +0100"
      },
      "message": "vmbase: Integrate libhyp as module\n\nThe only client of libhyp should ever be libvmbase so integrate the\nformer into the latter, which will allow code de-dup, easier tracking of\nlogic (including global static variables) and more straightforward code\nstructure.\n\nBug: 279539763\nTest: m libpvmfw libvmbase_example librialto\nChange-Id: Icbeda4cc936ead9c6c6df0533089ddb6b88a0833\n"
    },
    {
      "commit": "000f5b40ac30bd41924838071d71eb27d6861f15",
      "tree": "9e02c4f597504d073919424706fd9ffe2d31a5b4",
      "parents": [
        "e5cca92fe021e327eb0b451fda71d4a55eae6390"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Sat Apr 27 01:10:06 2024 +0100"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed May 22 10:34:52 2024 +0100"
      },
      "message": "libs: Prepare libhyp for move\n\nTrivial changes to limit the diff when moving the files to a minimum:\n\n- use the relative super::hypervisor path in the (private) back-ends;\n- get Error and Result directly from crate:: (not crate::error::);\n- move extern crate alloc next to cfg(no_std) (can be removed at once);\n- remove (private i.e. unused) \"use hypervisor::GeniezoneError\"\n\nTest: -\nChange-Id: I55f5c74d0e6fc78eeb5d066174816a60bb10936c\n"
    },
    {
      "commit": "20b5ab21a901f0d1536d7d5190eef8a06643a5dd",
      "tree": "76954acbfea756b611e3f70b79f866a682fd1e2c",
      "parents": [
        "97011cfed31cae41028e01e5e27f067eb301a253"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri May 10 15:40:43 2024 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon May 13 13:48:34 2024 +0100"
      },
      "message": "Make ecdsa_verify_cose testable\n\nAdd ecdsa_sign_cose (and rename the existing ecdsa_sign to\necdsa_sign_der). Implement DER to COSE signature conversion to support\nthis.\n\nFix terminology - COSE format rather than NIST format.\n\nAdd tests to ensure that signing \u0026 verification are compatible.\n\nNote that while I\u0027m adding code to the production bssl library, none\nof it is currently used other than in the new tests, so this shouldn\u0027t\nbreak anything.\n\nBug: 338745127\nTest: atest libbssl_avf_nostd.test\nChange-Id: Ie522f556f90c4515b4f738a23a42c02ff48b073e\n"
    },
    {
      "commit": "56f2641b1d22c29c0937a06308e8a2d5f32d1ddc",
      "tree": "62584a884fe65f9549ebc0ca5ef45140f51be6fc",
      "parents": [
        "8f7db050c041ae4851df9d93d96b1b892c5ad9a7",
        "6177c66e2cdaf10636931644057b895f9482a3b5"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 10 08:20:40 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 10 08:20:40 2024 +0000"
      },
      "message": "Merge \"Update source for Rust 1.78.0\" into main"
    },
    {
      "commit": "6177c66e2cdaf10636931644057b895f9482a3b5",
      "tree": "5ca0cb90ce401eb406d4eda49de3aebb171aa4e8",
      "parents": [
        "65ea4cbfef546094aa4858475e3f484802ac2d76"
      ],
      "author": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Thu May 09 14:37:44 2024 -0700"
      },
      "committer": {
        "name": "Chris Wailes",
        "email": "chriswailes@google.com",
        "time": "Thu May 09 15:46:15 2024 -0700"
      },
      "message": "Update source for Rust 1.78.0\n\nTest: m rust\nBug: 333887339\nChange-Id: Ie9c8e4942f14dc39d711e270cf0d3877aa7057c3\n"
    },
    {
      "commit": "b2f52fbb36161bde0cfa3661765acbad0221174b",
      "tree": "a892550b79223eacab03b3efe23310d409d6291a",
      "parents": [
        "337612085408c14cb7eb69422082b66e876f5756"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Thu May 09 10:12:55 2024 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Thu May 09 14:11:12 2024 +0100"
      },
      "message": "Handle NIST format signatures\n\nBoringSSL expects EC signatures in DER format, but COSE transports\nthem in NIST format (bare concatenation of R and S).\n\nAdd code to support conversion from NIST to DER, and provide separate\nsignature verification methods for each format.\n\nLoosely based on aosp/3064203.\n\nBug: 338745127\nTest: atest VmAttestationTestApp\nChange-Id: If5dd07e5e5b94a4c7491b2f828cfe73a2492df64\n"
    },
    {
      "commit": "d3bbe1d51c78ac07c61f2125232e558eb56a6ae0",
      "tree": "44f5cc6fe3c9569b04d180c64afaa1701b374f96",
      "parents": [
        "c57c4dfacfc00c43aaa8b00c05e3f4dfd73cdadf"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Mon Apr 15 18:03:51 2024 +0100"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Apr 17 19:21:08 2024 +0100"
      },
      "message": "vmconfig: Introduce get_debug_level()\n\nAdd helper function to centralize deducing the debug level from a VM\nconfig (either app or raw).\n\nTest: m libvmconfig vm virtmgr\nChange-Id: Ia04202fe3b1659b0428fd772e83e075d329f4cca\n"
    },
    {
      "commit": "b621fc885915990c1285d5175eed50f150a13941",
      "tree": "5e7578e856d14515204a41dd0841aa0bb40a6997",
      "parents": [
        "aada42c80d434fb27679618db63541e69bd834c1",
        "7d869776dbe066853df10d3221eb901674305903"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Thu Apr 11 23:48:10 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 11 23:48:10 2024 +0000"
      },
      "message": "Merge \"Refactor android display backend\" into main"
    },
    {
      "commit": "7d869776dbe066853df10d3221eb901674305903",
      "tree": "eb6d55765a0753ef57c801c645a7ce8e646567ce",
      "parents": [
        "9eaae1d4925c2d693595a839283bf02441913529"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Apr 09 00:57:04 2024 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Wed Apr 10 14:51:04 2024 +0900"
      },
      "message": "Refactor android display backend\n\nMajor changes included in this change:\n\n* Eliminate the unnecessary copy of each frame. Now crosvm draws\n  directly on the buffer returned by surfaceflinger.\n\n* In doing so, crosvm respects stride set by Android.\n\n* The scaling routine is removed as surfaceflinger scales the buffer\n  when it doesn\u0027t match with the surface size. This allows us to drop\nthe dependency to libyuv.\n\n* AndroidDisplayContext is created in its constructor so that any\n  failure during the construction doesn\u0027t leak memory.\n\nBug: 331900473\nTest: N/A\nChange-Id: Icc47f50a62696d3c959e8cb16dc531fe28d25ab5\n"
    },
    {
      "commit": "dc1847567baec8b9678525209c8e660e873ffdff",
      "tree": "301f4cc1ec5b859a7ee485979f517a05f0190eda",
      "parents": [
        "ae51f67a50320ba00c4153d0b5d9dcb6838e7779",
        "209ccd7a77550b46c56850416818cbc919f96758"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Apr 09 14:45:19 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 09 14:45:19 2024 +0000"
      },
      "message": "Merge changes I3b1d64c2,Iffa70df0 into main\n\n* changes:\n  Disable VmLauncherApp by default\n  Embed VmLauncherApp into com.android.virt\n"
    },
    {
      "commit": "ca773027adcd606dc90f47d5cb62ecd4e3ad873e",
      "tree": "c7ce22321df2eddb454ce00aaedf35513561e150",
      "parents": [
        "cd31a066db22cd69a92d50228579f390eaf23c7c"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Tue Apr 09 17:09:52 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Tue Apr 09 17:09:52 2024 +0900"
      },
      "message": "Embed VmLauncherApp into com.android.virt\n\nBug: 333495394\nTest: build and then check if VmlauncherApp is included in virt apex\nChange-Id: Iffa70df09c566182c33638748d29679307d71e9b\n"
    },
    {
      "commit": "9eaae1d4925c2d693595a839283bf02441913529",
      "tree": "6ab5e61e301796da393066115bdb4220e045ed34",
      "parents": [
        "2833e3ec0aa68486466decacbe7139251adec6bb",
        "abb6d8ad4af1b7e8cb6bd138ecf157ebcc78ad5c"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Mon Apr 08 11:20:39 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Apr 08 11:20:39 2024 +0000"
      },
      "message": "Merge changes from topics \"derive-microdroid-vendor-dice-node-for-real\", \"rollback-index\" into main\n\n* changes:\n  Actually derive microdroid vendor dice node\n  libvbmeta: add getter for rollback_index\n"
    },
    {
      "commit": "eee137df1897dc510b2817d63298921aa4e987b4",
      "tree": "6bd700cc796da8d0d80bd3c2350c134e0fa15408",
      "parents": [
        "7add2a46f59ff8eb53a7c151da7e0876475fdbd1"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Wed Apr 03 22:13:14 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri Apr 05 10:13:04 2024 +0900"
      },
      "message": "Add clearDisplayService in IVirtualizationServiceInternal\n\nTo clean up previous display service\n\nBug: 331708504\nTest: turn off and then turn on the vm launcher app\nChange-Id: Ica340a250d89ed6ed4cc66370cb01db807a0e17b\n"
    },
    {
      "commit": "7add2a46f59ff8eb53a7c151da7e0876475fdbd1",
      "tree": "cb98443a10069a0d6b4fa001e0573d626ada18ea",
      "parents": [
        "e9764720ebd2afb7cb8a635a6970c735e2ac5bcb"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Tue Apr 02 14:52:39 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri Apr 05 10:13:04 2024 +0900"
      },
      "message": "Add setDisplayService and waitDisplayService in IVirtualizationServiceInternal\n\nIn normal app context, it cannot add a service into service manager, so\nadd something similar into VirtualizationServiceInternal.\n\nBug: 331708504\nTest: check if the display shows\nChange-Id: I895e6a8affe3bc4e9de6bea226ebc40a7fcf7a0d\n"
    },
    {
      "commit": "e9764720ebd2afb7cb8a635a6970c735e2ac5bcb",
      "tree": "534cd0d559bf043fa224b37fcef92ebe9742ba8b",
      "parents": [
        "7a3f403d1e3bf3c5c00cf902215e7b4d085aa1e0"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Apr 01 12:52:21 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri Apr 05 10:12:54 2024 +0900"
      },
      "message": "Add native lib for the android display backend\n\nIt\u0027s not used by crosvm yet. And there are many TODOs left.\n\n* Rename to libandroid_display_backend.so\n* Use binderRPC over UDS\n* Don\u0027t copy frames (b/331900473)\n* Write in Rust\n\nBug: 325929966\nTest: m\nChange-Id: Ib4e5589d6200c5758a06e95fb5103e70b837bdae\n"
    },
    {
      "commit": "abb6d8ad4af1b7e8cb6bd138ecf157ebcc78ad5c",
      "tree": "caa7f4ad02d9164df2207a768afa3e90f9630132",
      "parents": [
        "ea99b3d3c13440fb8cd8518426dfa7f80c2db320"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Tue Mar 12 23:01:47 2024 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 04 15:06:21 2024 +0000"
      },
      "message": "Actually derive microdroid vendor dice node\n\nThe derive_microdroid_vendor_dice_node binary gets the current dice\nchain from the /dev/open-dice0 driver, derives the new dice chain with\nthe microdroid vendor node and writes it to the\n/microdroid_resources/dice_chain.raw file.\n\nThe microdroid_manager will read the dice chain from\n/microdroid_resources/dice_chain.raw and derive the final dice chain\nwith the payload node. After the derivation is done, microdroid_manager\nwill delete the /microdroid_resources/dice_chain.raw file.\n\nAdditionally, since /microdroid_resources is mounted in first_stage_init\nwhich happens before selinux is configured, we also call the\nrestorecon_recursive /microdroid_resources before starting\nmicrodroid_manager to make sure that the /microdroid_resources and\n/microdroid_resources/dice_chain.raw have correct context.\n\nBug: 287593065\nTest: run microdroid with vendor partition\nTest: atest MicrodroidTests\nChange-Id: Ibeb05b0ed24610624b11ac2c3e907cc900bd4cab\n"
    },
    {
      "commit": "ea99b3d3c13440fb8cd8518426dfa7f80c2db320",
      "tree": "0c7133445b94efbf1606370849a46a10bc555793",
      "parents": [
        "7a3f403d1e3bf3c5c00cf902215e7b4d085aa1e0"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Wed Mar 27 22:20:19 2024 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Apr 04 13:01:23 2024 +0000"
      },
      "message": "libvbmeta: add getter for rollback_index\n\nThis will be used by the derive_microdroid_vendor_dice_node binary in\nthe follow-up patch.\n\nBug: 287593065\nTest: atest libvbmeta_rust.test\nChange-Id: Ia38579a1038514190b98a5f1c82bab3bb509078b\n"
    },
    {
      "commit": "dbdac10d0ded933d239e714c885977d8663a7bdc",
      "tree": "be08f61401e68fc55f3f51bc932357534adc7e60",
      "parents": [
        "1da2d5d07fd919ede75e53859d3ed3f28e751ff4"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Mon Mar 25 08:01:32 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Mon Mar 25 08:24:45 2024 +0000"
      },
      "message": "[bssl] Add clippy::or_fun_call warning to the crate\n\nThis cl adds clippy::or_fun_call warning to the bssl\ncrate to opt in this check. The check is disabled by\ndefault since [1].\n\nThis helps us avoid work as in aosp/3008114.\n\n[1] https://github.com/rust-lang/rust-clippy/pull/9829\n\nTest: add an ok_or usage and check if there\u0027s warning\nChange-Id: I0519eaddc467f91f676eb0af24e68fb69fcf0586\n"
    },
    {
      "commit": "529bfc208cb99c3d1aa49d26f18ef22c4f38d1ac",
      "tree": "614efbf7a70001a7deb2a9a09f3b1f5b15f0e2a5",
      "parents": [
        "ab86c8364b0c7e2f7479a65172884786f783194f"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri Mar 22 14:05:36 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri Mar 22 14:54:06 2024 +0900"
      },
      "message": "Support cpu_topology in VmConfig\n\ncpu_topology is included in RawConfig, so support it in VmConfig as well\n\nBug: 330256602\nTest: add cpu_topology into json config, and then run `vm` tool\nChange-Id: I1a1f5bcd473789ff4001d6fa717a6a5a1102ae9d\n"
    },
    {
      "commit": "7167e1a27e4d41e909466d1263a848f32caaa9e4",
      "tree": "5220935e15c63a347f332960c4095921950e8d5f",
      "parents": [
        "4f1798a724d411d437f16ca6f55ac9ff3d4f2ec0",
        "f6e02277721b455ab85b08be0b5817124b43d0f4"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed Mar 20 16:25:37 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 20 16:25:37 2024 +0000"
      },
      "message": "Merge \"[bssl] Replace ok_or with ok_or_else in bssl for lazy evaluation\" into main"
    },
    {
      "commit": "f6e02277721b455ab85b08be0b5817124b43d0f4",
      "tree": "3b7bd65e2b74d4f9dc08060af342aa85a73087f3",
      "parents": [
        "e1e016b0a7faa38de73de3e0c744dc5ee18f8aa0"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed Mar 20 10:11:30 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed Mar 20 10:25:10 2024 +0000"
      },
      "message": "[bssl] Replace ok_or with ok_or_else in bssl for lazy evaluation\n\nPrior to the cl, the bssl library used `ok_or` in a way that\nresulted in the evaluation of the argument even when no error\noccurred.\nThis cl replaces `ok_or` with `ok_or_else` to introduce lazy\nevaluation in the error case.\n\nTest: atest rialto_test\nChange-Id: Ib9c514b577f68dc6da3cb00251ac88223c7a0402\n"
    },
    {
      "commit": "bfb56d721cbcce22b673090fdea44205ebf39821",
      "tree": "407c152a8c18098300fe8d4e81a6a5eb882799fe",
      "parents": [
        "e1e016b0a7faa38de73de3e0c744dc5ee18f8aa0"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Tue Mar 12 17:30:52 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Tue Mar 19 12:52:22 2024 +0000"
      },
      "message": "Encrypted store README: Document security section\n\nAdditionally, also introduce the intersection of Encrypted Store \u0026\nUpdatable VM.\n\nBug: 329202578\nTest: N/A\nChange-Id: If08e4282a25d709492cca22667772c08c2dfd315\n"
    },
    {
      "commit": "c8fd489560fd1a273c18be163827c589e3755ff4",
      "tree": "425349e9c45ba8d874a484ef548f7d79ea153f62",
      "parents": [
        "01a773f4b3945eb7625f3d2d4584cb7ebf6ef172",
        "855a6f6bf02b15487be896fd3db53ec2582014a3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Mar 19 12:04:21 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 19 12:04:21 2024 +0000"
      },
      "message": "Merge \"Use generated sysprop library.\" into main"
    },
    {
      "commit": "855a6f6bf02b15487be896fd3db53ec2582014a3",
      "tree": "a6c38439e79385c4c3efc5325f90b3b59d53f779",
      "parents": [
        "f472f3686b8975da198f45261554a95aff83b62d"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Fri Mar 08 16:35:45 2024 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Thu Mar 14 17:37:15 2024 +0000"
      },
      "message": "Use generated sysprop library.\n\nBug: 270547306\nTest: m libcompos_common libhypervisor_props\nChange-Id: I55ce6689dabb5458979c497dfa6b9d71342dff89\n"
    },
    {
      "commit": "d7aea45d55518b75220928123d223db033f67856",
      "tree": "0fbc112d71667c8678751a5d183235f7209fc7f9",
      "parents": [
        "d973221b190828322115f51a9307ceb6aa70869e"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Thu Mar 14 14:20:04 2024 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Thu Mar 14 14:20:04 2024 +0000"
      },
      "message": "Don\u0027t use *.rs for srcs\n\nRust build rules only support a single source file (which can then\nreference other modules).\n\nSo avoid wildcards, and instead name the top-level file.\n\nThe only case where we had multiple sources was pvmfw/avb, which\nactually seemed to be working fine.\n\nTest: atest liblibfdt.integration_test libpvmfw_avb.integration_test\n  libdiced_open_dice.integration_test libdiced_open_dice_nostd.integration_test\n  libdiced_sample_inputs.integration_test libdiced_sample_inputs_nostd.integration_test\n  libservice_vm_comm.test libservice_vm_comm_nostd.test\nChange-Id: I64ec1829a2128eeb629b37715ab78f1b694b25e2\n"
    },
    {
      "commit": "ab035a527281e07a100f89cee07a971431a633dd",
      "tree": "ffb76984f9f56694adc30af82b8c32066304bd21",
      "parents": [
        "e18cc13c2dfca560fdedf010cf43d0a9da1c480e"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Mar 14 00:33:50 2024 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Mar 14 00:36:09 2024 +0000"
      },
      "message": "Add DiceDrive::from_file factory method\n\nThis new function will be used in microdroid_manager to read the dice\nchain written during first_stage_init for Microdroid VMs with microdroid\nvendor partition.\n\nThis patch also adds a simple unit test to ensure that a dice chain read\nfrom the file is equal to the one written to it.\n\nBug: 287593065\nTest: atest libdice_driver_test\nChange-Id: I5fa10a4b405b23f2c1980a920f0e72077623c01c\n"
    },
    {
      "commit": "e18cc13c2dfca560fdedf010cf43d0a9da1c480e",
      "tree": "a3e944e575d7dc736778c64645e31c392c3515e7",
      "parents": [
        "9da7b2d391bbbd707ef2856f93539aef96879db5"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Wed Feb 28 16:13:36 2024 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Wed Mar 13 15:26:14 2024 +0000"
      },
      "message": "Move dice_driver to libs/dice/driver\n\nThe dice_driver will be used by the derive_microdroid_vendor_dice_node\nbinary, hence moving the implementation to libs.\n\nBug: 287593065\nTest: builds\nTest: presubmit\nChange-Id: If28834f84b24c75738ec6501d25745e20e674547\n"
    },
    {
      "commit": "e2a0bb0b65f108f8e7a928633fbdac54b8c2c4aa",
      "tree": "c4c3c43fee0723d4197837ce6105334bb1ac0c7a",
      "parents": [
        "9a6eed23cb5d89090053e52c51d8430ca8deb675"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Feb 21 15:28:32 2024 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Feb 26 23:50:42 2024 +0900"
      },
      "message": "libfdt: Add next_node_skip_subnodes()\n\nBug: 277993056\nTest: T/H\nChange-Id: Ib5ba16b41b94e0b6d86de960789c047aa7a9b71f\n"
    },
    {
      "commit": "244efeae12f78d654e0b2d64110024477e354932",
      "tree": "3eaa50f28d798a53364f92088300c0bfe161343f",
      "parents": [
        "8b133bff26b1c38044f16de25622561f34aec0cf"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:48:14 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 22 12:29:17 2024 +0000"
      },
      "message": "libfdt: Make Fdt::root{,_mut}() infallible\n\nAs we now build the node without calling into libfdt, there\u0027s no need\nfor the Rust functions to -\u003e Result\u003c_\u003e so update the API accordingly.\n\nTest: m pvmfw virtmgr fsfdt librialto libfdtpci\nTest: liblibfdt.integration_test libpvmfw.device_assignment.test\nChange-Id: I82d146b0db851c72cb3d58516f4cc14fff3f0321\n"
    },
    {
      "commit": "1bf3c0987ab35b8d7f91fac7063147d898379f7a",
      "tree": "e0089d4907fc2fcc156905aec9a3f04cf45da1fc",
      "parents": [
        "12ff3cc0da98e3b940242937bf750f4e00c0c0b7",
        "6d3064191f2b17b8f9a36cb62246e8f0e6693b3f"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Tue Feb 20 10:42:43 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 20 10:42:43 2024 +0000"
      },
      "message": "Merge \"[vm tool] Introduce check-feature-enabled\" into main"
    },
    {
      "commit": "45e1f4624a13485e67d96ea06b5bb6826c3830d6",
      "tree": "9ef3df9fe2c2a14b92b3c6401128718fe110f736",
      "parents": [
        "6c9e8bffef3b4586c1e613eac6691b4a8be732c0",
        "a5bc892203f7b59b7bf7acb9d96608242d745924"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Feb 19 19:18:45 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 19 19:18:45 2024 +0000"
      },
      "message": "Merge \"libfdt: Fix bug in delete_and_next_node()\" into main"
    },
    {
      "commit": "6d3064191f2b17b8f9a36cb62246e8f0e6693b3f",
      "tree": "4258a16aeba3dcf4aa4eebc9974356bb28654163",
      "parents": [
        "c204f21216c47c7622ec5f7da20782d758e2f389"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Sat Feb 17 21:37:49 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Mon Feb 19 16:57:53 2024 +0000"
      },
      "message": "[vm tool] Introduce check-feature-enabled\n\nIntroduce this command to allow host to query feature (such as\ncom.android.kvm.LLPVM_CHANGES) is enabled on device. Implement this in\nlibavf_features, so that virtmrg can share code.\n\nBug: 325630143\nTest: Inspect output of vm check-feature-enabled\ncom.android.kvm.LLPVM_CHANGES\n\nChange-Id: I9f11f6d8a98e1df6926492edee2152908c770e73\n"
    },
    {
      "commit": "a5bc892203f7b59b7bf7acb9d96608242d745924",
      "tree": "dcd45068e396fb69995ae6dcc01d057ed4f80396",
      "parents": [
        "5f855881d7e9191a80860616e9cde5185cff81ec"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 20 01:15:37 2024 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Feb 20 01:15:37 2024 +0900"
      },
      "message": "libfdt: Fix bug in delete_and_next_node()\n\nTest: T/H\nChange-Id: I41ceb4abd79b2de2cdfbf0f2766499157fabe5e0\n"
    },
    {
      "commit": "ca0bb7f1a419fced8a7928468d8edcf48c911a71",
      "tree": "118859a728014ad9c67c3c377f639b369daf977e",
      "parents": [
        "b13e3666fc2fbb55c7795cfa7bdb1ac986696152",
        "566723aee035fe205622eaecdaf0c5821153561a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Feb 19 14:31:02 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 19 14:31:02 2024 +0000"
      },
      "message": "Merge \"libfdt: Use zerocopy for safe fdt_header wrapper\" into main"
    },
    {
      "commit": "b13e3666fc2fbb55c7795cfa7bdb1ac986696152",
      "tree": "8d4fe2a1f0910bf6626b860c12d5f59706dc3d08",
      "parents": [
        "3e7e52c3621645846d5ffc86ca80299f2efccc91",
        "0606f70c5d8d91d3b7b8257ccdd2b709c8488465"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Feb 19 14:29:39 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 19 14:29:39 2024 +0000"
      },
      "message": "Merge \"libfdt: Introduce PropOffset \u0026 StringOffset\" into main"
    },
    {
      "commit": "3e7e52c3621645846d5ffc86ca80299f2efccc91",
      "tree": "5e27d98f9bdebe20369cf579973a6d10f21678a4",
      "parents": [
        "c909e6e33555348a76235082902583c284b904c2",
        "7f2658db73168fb72a0ecfba76c3158f6026807c"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Feb 19 14:29:00 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 19 14:29:00 2024 +0000"
      },
      "message": "Merge changes I1bcdc9f7,I458c578a into main\n\n* changes:\n  libfdt: Simplify locating nodes at the root\n  libfdt: Introduce abstraction type NodeOffset\n"
    },
    {
      "commit": "b1c34603d858df3a648f584f880427268de42c0f",
      "tree": "93d4028518a2050b674d60972898427a5b26b8e0",
      "parents": [
        "a3c4ec349962a4c43ff19505b89082f111ace3b3",
        "91be1905f4dc7c4a5236715759c65de55c90fbb8"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Feb 16 17:38:29 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 16 17:38:29 2024 +0000"
      },
      "message": "Merge changes I54ee0330,I26e77cc1,Ib9515431 into main\n\n* changes:\n  libfdt: Replace helper functions with FdtRawResult\n  libfdt: Introduce FdtRawResult abstraction type\n  libfdt: Move pack(), unpack(), apply_overlay()\n"
    },
    {
      "commit": "566723aee035fe205622eaecdaf0c5821153561a",
      "tree": "e5bfa21349c1bfb0d30c7e9a028468f0b3a39c5a",
      "parents": [
        "0606f70c5d8d91d3b7b8257ccdd2b709c8488465"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Jan 24 13:01:54 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:52:18 2024 +0000"
      },
      "message": "libfdt: Use zerocopy for safe fdt_header wrapper\n\nProvide a way to get a safe \u0026(mut) fdt_header from any \u003cT: Libfdt(Mut)\u003e.\n\nInstead of manually doing the conversion from the BE-encoded DT fields,\nuse zerocopy to implement a zero-cost wrapper where each field has a\ngetter and setter function that transparently handles the endianness.\n\nCombine those to remove the need for unsafe code in Fdt.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I5ccaf49b48c13855d80ad386d41be3abbf3fdfe8\n"
    },
    {
      "commit": "0606f70c5d8d91d3b7b8257ccdd2b709c8488465",
      "tree": "9c15ca207058aa70b36b2c2904218954e7b042f3",
      "parents": [
        "7f2658db73168fb72a0ecfba76c3158f6026807c"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Jan 19 16:25:16 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:52:18 2024 +0000"
      },
      "message": "libfdt: Introduce PropOffset \u0026 StringOffset\n\nSimilarly to NodeOffset, introduce new transparent c_int wrappers for\nDT offsets pointing to properties and offsets in the DT string table,\nallowing the compiler to detect mis-used values.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: Ie69e61ede25e2e03fe179a5f84fa63f010515cce\n"
    },
    {
      "commit": "7f2658db73168fb72a0ecfba76c3158f6026807c",
      "tree": "3b79d4ffc4e9f397533f63bd937d8ecd6be91b66",
      "parents": [
        "ee0a1eb528ae4659513aedeccf885fa34e9459b4"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Mon Jan 22 15:56:07 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:52:18 2024 +0000"
      },
      "message": "libfdt: Simplify locating nodes at the root\n\nAs the DTSpec defines the offset of the root as 0, simplify .root*() to\ninstantiate the FdtNode* directly, without involving libfdt. Note that a\nfuture patch may turn these functions from -\u003e Result\u003c_\u003e to -\u003e _ as they\nshould never fail.\n\nUse that to locate nodes at hard-coded paths which are subnodes of the\nroot by calling .root().subnode(), which removes the need for libfdt to\ndo any path parsing and results in a single (and simple) C call:\n\n    fdt_subnode_offset_namelen(fdt, 0, name, name.len());\n\nwhich simply parses the root.\n\nNote that the same change can\u0027t be made for the mutable versions because\nthe borrow checker complains about the way we are getting subnodes of\nFdtNodeMut instances.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I1bcdc9f7a4883e31ef60cfaed61f26465386c996\n"
    },
    {
      "commit": "91be1905f4dc7c4a5236715759c65de55c90fbb8",
      "tree": "530571fa205dbd58bac0ac7dcc59f091cd5dbd75",
      "parents": [
        "38304eb3b4e2c1c6d3f3499570478302018bdcbb"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Mon Jan 22 21:15:19 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:52:18 2024 +0000"
      },
      "message": "libfdt: Replace helper functions with FdtRawResult\n\nMove all FFI interfaces to the newly-introduced FdtRawResult,\nimplementing TryFrom\u003cFdtRawResult\u003e as needed, and remove the\nnow-obsolete helper functions.\n\nNote that all low-level libfdt wrappers now simply return\n\n    FdtRawResult::from(ret).try_into()\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I54ee0330556533a7a8d0ce07f15fed50849260eb\n"
    },
    {
      "commit": "ee0a1eb528ae4659513aedeccf885fa34e9459b4",
      "tree": "37736b10dbcad9600e0f9bfbde03a05552fdcef1",
      "parents": [
        "91be1905f4dc7c4a5236715759c65de55c90fbb8"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Mon Jan 29 13:14:25 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:52:18 2024 +0000"
      },
      "message": "libfdt: Introduce abstraction type NodeOffset\n\nThe C functions use c_int for different purposes, which can lead to\nundetected bug where values with different meanings are mixed or invalid\nvalues are passed.\n\nInstead, introduce a transparent c_int wrapper representing DT node\noffsets, allowing the compiler to catch such bugs and prevent invalid\noffsets from being created.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I458c578a287e9484dc0febaaffdda7b28a93f520\n"
    },
    {
      "commit": "38304eb3b4e2c1c6d3f3499570478302018bdcbb",
      "tree": "496e81217475037841a14012f3087fc9ac85c177",
      "parents": [
        "e21ed3fd9f01cf36bc5c50b705590f9438e46318"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Jan 11 22:37:54 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:52:18 2024 +0000"
      },
      "message": "libfdt: Introduce FdtRawResult abstraction type\n\nIntroduce a type representing the raw result of a libfdt function call,\nso that we can implement traits (in particular From and TryFrom) on the\nresult in order to centralize and abstract away operations such as\ntrivial type casting.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I26e77cc17e7aa2d5cc437ceed131dca84f6936e8\n"
    },
    {
      "commit": "e21ed3fd9f01cf36bc5c50b705590f9438e46318",
      "tree": "fbd86dad2b47a5a62eb486ed2885674a8e46b018",
      "parents": [
        "eabe1f510cb145214c183835e6045850a78a89bf"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Jan 23 18:16:13 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 14:52:17 2024 +0000"
      },
      "message": "libfdt: Move pack(), unpack(), apply_overlay()\n\nFix the lifetime of overlay in Fdt::apply_overlay() as there is no need\nfor it to share the lifetime of the Fdt (only that the reference is\nvalid during the execution of the function call) and fix the Safety\ncomment to clarify that overlay always gets corrupted.\n\nAdd FFI for fdt_open_into(), fdt_pack(), and fdt_overlay_apply().\n\nNote that Rust does not allow aliasing mutable and const references so,\nto properly expose the fdt_open_into() API to clients, provide it\nthrough distinct read-only and read-write functions: Libfdt::open_into()\nand LibfdtMut::open_into_self().\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: Ib95154317fcba22f8ce2f89032f2859ea62e9c6e\n"
    },
    {
      "commit": "a3c4ec349962a4c43ff19505b89082f111ace3b3",
      "tree": "4cde1bb25efb6bfbab1693c427aeee050d239b2d",
      "parents": [
        "6e825ef3bb02bd9545033f95e7f1b78906c0bf78"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 15 20:05:15 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 16 11:44:14 2024 +0000"
      },
      "message": "libfdt: Change FdtNodeMut::add_subnode*(self, ...)\n\nAs the borrow checker forbids having more than one mutable reference at\nthe same time and as FdtNodeMut is a wrapper around \u0026mut Fdt, take the\nownership of the node when obtaining its first_subnode, allowing less\nconvoluted code when walking a mutable DT.\n\nBug: 324046698\nTest: m pvmfw virtmgr fsfdt librialto libfdtpci\nTest: m liblibfdt.integration_test libpvmfw.device_assignment.test\nChange-Id: I1bbbebe263c21f95b3637bb6266b4308079ada8f\n"
    },
    {
      "commit": "973dda394a954458d208736390dd764adc8fb010",
      "tree": "0c6750303e7d800d76a8bbd8eac9b709d31ef6fd",
      "parents": [
        "6e2b12d09369a643bd5ef69897c4c00f493c48a3"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Feb 14 16:08:28 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Wed Feb 14 16:08:28 2024 +0000"
      },
      "message": "libfdt: Change to FdtNodeMut::first_subnode(self)\n\nAs the borrow checker forbids having more than one mutable reference at\nthe same time and as FdtNodeMut is a wrapper around \u0026mut Fdt, take the\nownership of the node when obtaining its first_subnode, allowing less\nconvoluted code when walking a mutable DT.\n\nBug: 284369518\nTest: m liblibfdt.integration_test\nChange-Id: I9ab17f3d0ac22d02c987d9079c23c5d347b2b6a6\n"
    },
    {
      "commit": "948ae2b91f5b1242a50dd6972b74507c69f3d3df",
      "tree": "d099b12773abd6180708fff7ca83ce8152de6f70",
      "parents": [
        "fd3403743d45ff0c23222364ff3f79625e7c125a",
        "8704861b451ae8aaf6f1ebbfd68c9cdc53f8ebbe"
      ],
      "author": {
        "name": "Ronish Kalia",
        "email": "ronish@google.com",
        "time": "Mon Feb 12 16:20:55 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 12 16:20:55 2024 +0000"
      },
      "message": "Merge \"Simplify test ownership.\" into main"
    },
    {
      "commit": "e9c36fb2c7cb5e680aa1e0cac50a71d993970813",
      "tree": "db843e5cf861069c5432584b4b1c813b99f53184",
      "parents": [
        "30908a5bf57306e2705364de93dfd2fb596adebe",
        "eabe1f510cb145214c183835e6045850a78a89bf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Mon Feb 12 12:24:43 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 12 12:24:43 2024 +0000"
      },
      "message": "Merge changes from topic \"libmemoffset_nostd\" into main\n\n* changes:\n  libfdt: Make get_property_by_offset() less unsafe\n  libfdt: Move FFI for DT properties to Libfdt*\n  libfdt: Add setprop_placeholder \u0026 Improve trimprop\n  libfdt: Make Libfdt::string() actually safe\n  libfdt: Move string functions to Libfdt\n  libfdt: Move phandle functions and 0-cost Phandle\n"
    },
    {
      "commit": "8704861b451ae8aaf6f1ebbfd68c9cdc53f8ebbe",
      "tree": "85428927d7d07c52808935d18e5d32c582365b8e",
      "parents": [
        "6a33357da2054333eb7bf121f1b48cc74e182470"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Thu Feb 08 17:08:31 2024 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Feb 12 09:19:36 2024 +0000"
      },
      "message": "Simplify test ownership.\n\nThis reverts:\n- commit 53696172c06b3e8ea2764e5fa8e0af49b1a1ef36.\n- commit 61615bd4234526c645ecae60a870aa0499d79964.\n\nWe own all the tests under here, we should only have to say so once.\n\nTest: N/A\nChange-Id: I078aa7fe512fcb3840782ac9ca896d3da129cfb6\n"
    },
    {
      "commit": "68c7b8fec725726c28f50ac100010a7aab90f9ba",
      "tree": "390b815f90829717fe331c54c36dacd9002a0bde",
      "parents": [
        "ea9f6497824848e0e51d93a0a6a590e893ae2cd6",
        "38b9e713bd5fd598050982adb617ba1e36a7a62c"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Fri Feb 09 01:06:17 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Feb 09 01:06:17 2024 +0000"
      },
      "message": "Merge \"Introduce avf_build_flags_cc cc_defaults\" into main"
    },
    {
      "commit": "ea9f6497824848e0e51d93a0a6a590e893ae2cd6",
      "tree": "4e99a3f22b765c19bc9e66a563231df398ffc2ac",
      "parents": [
        "afe87c04ece002ad0976ad19f0e1560a83842142",
        "81c5bc7bf147bbed9fc16585c7072cbdd0883280"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Feb 08 20:06:29 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 08 20:06:29 2024 +0000"
      },
      "message": "Merge \"libfdt: Move FdtNodeMut::next_node_skip_subnodes()\" into main"
    },
    {
      "commit": "afe87c04ece002ad0976ad19f0e1560a83842142",
      "tree": "43e91c833e62d9bc90aceddb396e12b7309e7032",
      "parents": [
        "9e34e6abcf18fb184e76cfbf67cbf568cad6e3e3",
        "d83741dd7bb518d305fda6dc71786082fa206cdf"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Feb 08 19:59:48 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 08 19:59:48 2024 +0000"
      },
      "message": "Merge \"libfdt: Introduce Libfdt traits \u0026 Move node funcs\" into main"
    },
    {
      "commit": "eabe1f510cb145214c183835e6045850a78a89bf",
      "tree": "6d1346e7e142129ca8294ad272375238925f777e",
      "parents": [
        "410e46ab3e30a7a06784dede1a97c0671b4ffe77"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Jan 23 22:47:43 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Make get_property_by_offset() less unsafe\n\nInstead of trusting that any non-NULL pointer returned from C is valid\nby casting it to a reference, check that it is a valid pointer (properly\naligned for the type), that it points to a property that is fully\ncontained within the DT slice (this covers NULL validation), and that\nthe len field of the struct properly matches what libfdt returned (which\nwe validated).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I72226debc5403f17250fcb0b2d85bbfbba155c98\n"
    },
    {
      "commit": "81c5bc7bf147bbed9fc16585c7072cbdd0883280",
      "tree": "44b3badbf9ef46071445583c2add378c9b42cce9",
      "parents": [
        "d83741dd7bb518d305fda6dc71786082fa206cdf"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Mon Jan 29 13:39:07 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Move FdtNodeMut::next_node_skip_subnodes()\n\nAs the function only deals with node offsets it isn\u0027t tied to the\nmutability of the node so move it to Fdt, which will allow it to be\nre-used by FdtNode, if needed.\n\nSimplify some variable names but keep the codeflow unchanged.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I4977a1da3072f3d2b45cb33e129a740524093659\n"
    },
    {
      "commit": "d83741dd7bb518d305fda6dc71786082fa206cdf",
      "tree": "12055b7097f9800653f3fb292af572edd109af7b",
      "parents": [
        "fbb5ee2aff9ff567bdb2cc2da80195b516b14308"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Feb 02 10:44:55 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Introduce Libfdt traits \u0026 Move node funcs\n\nDecouple the Fdt type from the C functions, to allow easily supporting\nthe libfdt API through other types (e.g. a heap-allocated FdtOwned). The\ntrait will be intended as the single point for implementing thin\nwrappers around the bindgen. Higher-level and user-facing types will be\nprovided with a safe API by these traits. The traits are decoupled\nbetween mutable and immutable to afford the highest level of flexibility\nto implementers. Note that this allows the RO API to be used by mutable\nabstractions without risk of confusing the borrow checker as the API\ndeals with c_int offsets.\n\nTo make this easier to review, this commit only transfer basic node\nfunctions dealing with node offsets and the rest of the FFI will be\nmoved in chuncks by future commits.\n\nReduce the unsafe blocks to the strict minimum (i.e. the FFI calls).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: Iee53dbd357499bc6c1562264d23be94de2c0196e\n"
    },
    {
      "commit": "410e46ab3e30a7a06784dede1a97c0671b4ffe77",
      "tree": "13b564d3e1a1ac60ed2fa638f3c174da766fb3b6",
      "parents": [
        "843845ddb7496cee94340e7df41d86695de64e2c"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Sun Dec 24 11:33:11 2023 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Move FFI for DT properties to Libfdt*\n\nMove all the functions dealing with DT properties to the new traits.\n\nReduce the unsafe blocks to the strict minimum (i.e. the FFI calls).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I98698a7ae9b6874c329c8a7bf902b33c7e7a453d\n"
    },
    {
      "commit": "843845ddb7496cee94340e7df41d86695de64e2c",
      "tree": "b704e99f7fc4efd5c788bc773078c406cbdfbb63",
      "parents": [
        "a4eaba9a7bf94bd846b468e0cfa60b1fabb404d9"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Jan 23 23:35:01 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Add setprop_placeholder \u0026 Improve trimprop\n\nAdd a wrapper for the previously unsupported fdt_setprop_placeholder().\n\nAs fdt_setprop() internally calls fdt_setprop_placeholder()+memcpy(),\nthe previous implementation of trimprop() was effectively resulting in\n\n    fdt_setprop_placeholder(..., len, ...);\n    memcpy(data, data, len);\n\nfor which it needed to use getprop_internal() to play some tricks around\nthe borrow checker to make that memcpy have no effect. Instead, simply\nimplement it by calling fdt_setprop_placeholder() directly, making the C\ncalls more efficient and the Rust code simpler and safer.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I4b847dd51c230d4c6c9b6b2efd6c45087544c955\n"
    },
    {
      "commit": "a4eaba9a7bf94bd846b468e0cfa60b1fabb404d9",
      "tree": "4f7d497b11351c157d45806f055bc5c7f0fcf76d",
      "parents": [
        "60282aed066c0d26b4dc38f1527114f7501cb859"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Jan 23 21:24:37 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Make Libfdt::string() actually safe\n\nInstead of blindly trusting that the C code has returned a properly\nNULL-terminated C string[*], limit the CStr constructor to whatever\nbytes are available between the returned pointer and the end of the DT\nslice, which hardens the function by:\n\n - Avoiding UB if CStr::from_ptr wasn\u0027t passed a valid C string;\n - Avoiding OOB in CStr::from_bytes_until_nul by passing a DT sub-slice.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I56daa3360c8556e7e210d2c53fcea1a332268828\n"
    },
    {
      "commit": "60282aed066c0d26b4dc38f1527114f7501cb859",
      "tree": "af29062f10ca3e13ead82cb2e2a8d52b54981883",
      "parents": [
        "ecd5bbc75bf008c5ad2ac8049991f930cac741d8"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Dec 21 16:00:02 2023 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Move string functions to Libfdt\n\nMove fdt_string() and fdt_get_name() to the Libfdt trait.\n\nMake the pointer-based indexing safer by avoiding treating the pointers\nas integers; see feature(strict_provenance) and use the new\nimplementation in Fdt::get_from_ptr().\n\nReduce the unsafe blocks to the strict minimum (i.e. the FFI calls).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: Icfbc7736e919313d9cf2dc60d3ea5cfff16a8ca5\n"
    },
    {
      "commit": "ecd5bbc75bf008c5ad2ac8049991f930cac741d8",
      "tree": "80051cb5d04b6984d84b22cc93ecef95d3b74ebd",
      "parents": [
        "81c5bc7bf147bbed9fc16585c7072cbdd0883280"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Dec 21 15:12:45 2023 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Feb 08 18:06:23 2024 +0000"
      },
      "message": "libfdt: Move phandle functions and 0-cost Phandle\n\nMove Phandle to its own module, intended to contain all the zero-cost\nabstractions used by our Rust-safe wrapper around libfdt in place of the\nc_ints expected by the C code.\n\nMove the functions dealing with phandles to the LibFdt* traits.\n\nReduce the unsafe blocks to the strict minimum (i.e. the FFI calls).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I548c7436f94bd7a902943eaea5bf1f0195e52366\n"
    },
    {
      "commit": "9e34e6abcf18fb184e76cfbf67cbf568cad6e3e3",
      "tree": "d0396a75628e665431512db0c1f31fae7775952e",
      "parents": [
        "7a7b2a9dd7f99a0adb19b6fff570b34379a3445a",
        "fbb5ee2aff9ff567bdb2cc2da80195b516b14308"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Feb 08 17:50:28 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 08 17:50:28 2024 +0000"
      },
      "message": "Merge changes Ic5efebce,I597a6ba5,I4575b41e,I714a95d9,I7d2d8ecb, ... into main\n\n* changes:\n  libfdt: Move funcs for non-DT buffers out of Fdt\n  libfdt: Move FdtError, Result to dedicated module\n  libfdt: Clean up the code before moving FFI calls\n  libfdt: Remove duplicate FdtNode::from_mut()\n  libfdt: Make unsafe API for DT cloning safe\n  libfdt: Make ref casts \u0026 transmutes less unsafe\n"
    },
    {
      "commit": "38b9e713bd5fd598050982adb617ba1e36a7a62c",
      "tree": "8654979299798f76fb50b0f2edc0571021d41afe",
      "parents": [
        "cd18984d3e31ac61b9e446a2cd22db3365d0f6b4"
      ],
      "author": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Feb 08 15:55:07 2024 +0000"
      },
      "committer": {
        "name": "Nikita Ioffe",
        "email": "ioffe@google.com",
        "time": "Thu Feb 08 16:21:28 2024 +0000"
      },
      "message": "Introduce avf_build_flags_cc cc_defaults\n\nThese are similar to avf_build_rust_build flags, but for cc_* soong\nmodules.\n\nIn the immediate future this will be used for flag guarding\nvirtcpu-freq related changes to platform.dts.\n\nThis patch also adds avf_build_flags_cc as cc_defaults to all our\nexisting cc_* soong modules\n\nTest: builds\nBug: 284369518\nChange-Id: I19152675802548cd9efba30a40bccdbb14867fe1\n"
    },
    {
      "commit": "d9dda0c19c2d4166f147ed988cf589c533173795",
      "tree": "4db937773e32c46b36e6b39f50a0b084dac1e8e6",
      "parents": [
        "c91541a03e8fcc8b20e4ad77ee41f3e54fa52f77"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Feb 07 14:27:06 2024 +0100"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Feb 07 14:27:51 2024 +0100"
      },
      "message": "Replace use of deprecated logging functions\n\nThis is needed to upgrade the android_logger crate from 0.12.0\nto 0.13.3.\n\nwith_max_level provides the same functionality as with_min_level.\nThe renaming is admittedly confusing, but the new name is accurate\nand it makes sense that they deprecated and then removed the\npreviously poorly named with_min_level.\n\nSee crate documentation [1] and code [2].\n\n[1]: https://docs.rs/android_logger/0.12.0/android_logger/struct.Config.html#method.with_min_level\n[2]: https://docs.rs/android_logger/0.12.0/src/android_logger/lib.rs.html#227\n\nBug: 322718401\nTest: build and run CF with the change.\nTest: m aosp_cf_x86_64_phone\nChange-Id: I81bcd468e8e5fa8a4686642cb32758b74d271503\n"
    },
    {
      "commit": "fbb5ee2aff9ff567bdb2cc2da80195b516b14308",
      "tree": "18c7e78bd956e9159837759c90b84313fc97888d",
      "parents": [
        "99a7690c9635fd203dd861a444dfff129b5542e7"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Dec 21 13:49:59 2023 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Feb 06 12:26:25 2024 +0000"
      },
      "message": "libfdt: Move funcs for non-DT buffers out of Fdt\n\nMove check_full() and create_empty_tree() out of the class as they did\nnot work well with OOP (RAII) given that they were intended to act on\nbuffers that _might_ contain a valid DT (while Fdt should only wrap\nbuffers with valid DTs).\n\nThis introduces a new module, which should end up containing all (and\nonly) the FFI calls, providing a low-level Rust-safe API to lib.rs. This\nwill allow us to decouple the high-level client-facing classes (Fdt,\nFdtNode, FdtNodeMut, ...) from the low-level considerations of dealing\nwith the libfdt C function.\n\nReduce the unsafe blocks to the strict minimum (i.e. the FFI calls).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: Ic5efebced5827a8a26af48a151bb437df6f71a93\n"
    },
    {
      "commit": "99a7690c9635fd203dd861a444dfff129b5542e7",
      "tree": "d9bcb56ec3a9e8fef6bb4f4d59d0a97ef8e24f02",
      "parents": [
        "cb92b511e9622c1e512b44401b854700336bbfda"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Dec 21 10:30:37 2023 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Feb 06 12:26:25 2024 +0000"
      },
      "message": "libfdt: Move FdtError, Result to dedicated module\n\nStart breaking up lib.rs by moving all types and functions related to\nlibfdt results into their own file.\n\nMark the functions pub(crate) to allow them to be called from lib.rs.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I597a6ba56fb1399e474dfc822a1d2d72c1132453\n"
    },
    {
      "commit": "cb92b511e9622c1e512b44401b854700336bbfda",
      "tree": "9c01ab4b391bce2a40e0251f79428f4900b55cc7",
      "parents": [
        "c01fd0dab60f2d51ec1033bf89bb70351ce7f3ba"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Mon Jan 22 15:55:25 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Feb 06 12:26:25 2024 +0000"
      },
      "message": "libfdt: Clean up the code before moving FFI calls\n\nRemove unnecessary type hints and let the compiler figure out the type\ninformation of generic calls from the context.\n\nDRY type information in class functions by using Self.\n\nGet rid of intermediate variables for cstr! now that we have the macro.\n\nMake {Addr,Size}Cells::TryFrom\u003cusize\u003e, more appropriate for sizes.\n\nDRY FdtNodeMut::delete_and_next_{node,subnode,compatible}() and\nintroduce FdtNodeMut::next_node_skip_subnodes() for clarity.\n\nMake other trivial changes (e.g. homogenized code flow, introducing\nintermediate variables, ...) to reduce the diff when we will move unsafe\nFFI calls to another module.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I4575b41e4fe1db328edf373e0d3bca8565d365ed\n"
    },
    {
      "commit": "c01fd0dab60f2d51ec1033bf89bb70351ce7f3ba",
      "tree": "03a47ff0b61a14874c08e104005b8d4297dc27ca",
      "parents": [
        "ce0b36db1e5d974c99fcda1e93f491adcfc9a726"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Thu Jan 25 22:26:22 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Feb 06 10:26:11 2024 +0000"
      },
      "message": "libfdt: Remove duplicate FdtNode::from_mut()\n\nThe method duplicates FdtNodeMut::as_node() so remove it. Even if it\u0027s\npub, the only user seems to have been in pvmfw so replace it.\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I714a95d9a2c947e91f7bb5c86564ee13af898cbb\n"
    },
    {
      "commit": "ce0b36db1e5d974c99fcda1e93f491adcfc9a726",
      "tree": "76e1273cfe4784344916c5854ff9367b8d1fc589",
      "parents": [
        "df3037fc6be0ae065b86581029fc0b56e605d2be"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Fri Jan 26 10:50:05 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Feb 06 10:26:06 2024 +0000"
      },
      "message": "libfdt: Make unsafe API for DT cloning safe\n\nThe Fdt::copy_from_slice() was unsound as it allowed client code to\nbypass the (safe) constructor (which validates the class invariant) and\nprovide arbitrary bytes that would then be available as a \"safe\" (but\nnot actually) \u0026Fdt. Instead of marking that API unsafe (which it should\nhave been), rework it into a safe API taking a \u0026Self, meaning that the\ninvariant has already been validated for the input.\n\nUpdate callers to use the new API. In particular, note that this change\nforces one of them to be marked unsafe (which is good!).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I7d2d8ecb85c26f5644ca26330c057568a75656ce\n"
    },
    {
      "commit": "df3037fc6be0ae065b86581029fc0b56e605d2be",
      "tree": "ce4dfba60cf8ae6451399916c4a2a8623fa4de12",
      "parents": [
        "42613e600e6074d5a4eee17fbeed35670967c10f"
      ],
      "author": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Mon Jan 22 15:41:43 2024 +0000"
      },
      "committer": {
        "name": "Pierre-Clément Tosi",
        "email": "ptosi@google.com",
        "time": "Tue Feb 06 10:25:40 2024 +0000"
      },
      "message": "libfdt: Make ref casts \u0026 transmutes less unsafe\n\nUse (safe) zerocopy::transmute! to transmute [u32; _] into [u8; _].\n\nImplement FdtNodeMut::parent() with FdtNode::parent(), removing an\nunsafe call to the C FFI fdt_parent_offset().\n\nGive the compiler more information about Fdt::unchecked_from*_slice()\nby casting the reference, instead of transmuting its bytes (which are\nnot the bytes of the type referred to!). The code remains unsafe\n(because we\u0027re dereferencing a raw pointer) but is already more robust.\n\nRework the safety comments accordingly.\n\nClearly distinguish the fdt_property-to-FdtPropertyStruct ref cast from\nthe (*const)-\u003e\u0026 cast where the former is safe (thanks to \u0027transparent\u0027)\nwhile the latter is only safe if we blindly trust C (this assumption\nwill be removed by a future patch).\n\nTest: m pvmfw\nTest: atest liblibfdt.integration_test\nChange-Id: I42785d2f5ae2dde2163d571869b36a480406cdd9\n"
    },
    {
      "commit": "53696172c06b3e8ea2764e5fa8e0af49b1a1ef36",
      "tree": "08b9bdf6e1e22580aa074a3503dd0c4209b92806",
      "parents": [
        "1f54d78dab3b96a40c3a6f2e94254a5f08885469"
      ],
      "author": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Mon Feb 05 15:46:19 2024 +0000"
      },
      "committer": {
        "name": "Aditya Choudhary",
        "email": "caditya@google.com",
        "time": "Mon Feb 05 15:46:19 2024 +0000"
      },
      "message": "[DON\u0027T BLOCK] Test ownership migration rules\n\nThis CL is created as a best effort to migrate test targets\nto the new android ownership model. If you find incorrect or unnecessary\nattribution in this CL, please create a separate CL to fix that.\n\nFor more details please refer to the link below,\ngo/new-android-ownership-model\n\nBug: 304529413\nTest: N/A\nChange-Id: I2d2b76d1877eec0b2d36ba130da619b94bb046fb\n"
    },
    {
      "commit": "e636342abac4c334629506e93bf36efb612e5cba",
      "tree": "c80aa3d1db0d1a0b2038b81f926cce293394df10",
      "parents": [
        "4a34b0d78148e4148dc79136a34afdc0125e75d5"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Jan 19 14:00:00 2024 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Jan 25 00:43:46 2024 +0900"
      },
      "message": "libfdt: Add FdtNodeMut::add_subnodes()\n\nNew API helps to add multiple subnodes at once.\n\nExisting add_subnode() can\u0027t be used for the purpose because borrow\nchecker thinks that both self and the new subnode have mutable reference\nof Fdt at once, even when the new node is dropped immediately.\n\nBug: 318431695\nTest: atest liblibfdt.integration_test, TH\nChange-Id: Ie490954a188362611e5175029b954536f837e283\n"
    },
    {
      "commit": "4a34b0d78148e4148dc79136a34afdc0125e75d5",
      "tree": "123e4ac2a1e2bdf66b0af69af272972e9cdbef58",
      "parents": [
        "1ec249c4961434e5d10ca4871a4ab6e3f2fa2bd4"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Fri Jan 19 13:17:47 2024 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Jan 25 00:43:46 2024 +0900"
      },
      "message": "libfdt: Fix subnodes() lifetime\n\nBug: 318431695\nTest: atest liblibfdt.integration_test\nChange-Id: Ib0ca4c9eb74918896666544793362acfc372e689\n"
    },
    {
      "commit": "a99b1ce512aadf67cf03418fe3b11db9d6cdc46f",
      "tree": "d806b74312809f3288593297d22f87f33e330ee4",
      "parents": [
        "e14a1f9f67a6e321f6582eaa7737624e911d2924"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Tue Jan 16 16:52:28 2024 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Tue Jan 16 16:54:42 2024 +0000"
      },
      "message": "Use rdroidtest proc macro.\n\nTest: atest apkdmverity.test libdm_rust.test\nChange-Id: I4e52f71a81e539a386fd37bada36d1c4daed9822\n"
    },
    {
      "commit": "c8ba73cdf1952e97d97fea519c6e3e1fab1f5018",
      "tree": "f3aa7d649f63a63252d463b9ebdab550f34caa50",
      "parents": [
        "ab958c41bb2a5dbeb9c3451011e7f21fc9de5391"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Jan 03 18:34:38 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Jan 10 16:51:57 2024 +0000"
      },
      "message": "libdiced_open_dice: Visibility to Secretkeeper VTS\n\nThis is required for constructing sample dice chains for testing.\n\nTest: Builds\nBug: 291224769\nChange-Id: I515b30ab1868897ba97a351f1c2184a82203f276\n"
    },
    {
      "commit": "0ebd67e991dec5ad93f860baea7805a7dec4f6c6",
      "tree": "1e7264415170b73b1e0161770ad6320764cc032c",
      "parents": [
        "85797566fb53dd37da59778181c4802fbf7cac11"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Dec 22 23:58:31 2023 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Jan 10 15:59:42 2024 +0000"
      },
      "message": "Open visibility of diced_open_dice to secretkeeper\n\nsecretkeeper_client library builds ExplicitAndOwnedDiceArtifacts on the\ntop of OwnedDiceArtifacts. Other methods to retrieve keys from\nDiceArtifacts will also be useful.\n\nBug: 298217847\nTest: Builds\nChange-Id: I54da7c3130d96ae70eb59591b89d4cdfc10b111f\n"
    },
    {
      "commit": "85797566fb53dd37da59778181c4802fbf7cac11",
      "tree": "b899567c3a770f6724803d2d054bfe9c53b32d1c",
      "parents": [
        "463225584ddeb65c33e0d3d9e82932112fa06a6b",
        "f54aea9acb4ad9416f5b3c7fa694497a9b68af81"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Tue Jan 09 15:33:59 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 09 15:33:59 2024 +0000"
      },
      "message": "Merge \"[bssl] Improve error processing when BoringSSL API fails\" into main"
    },
    {
      "commit": "f54aea9acb4ad9416f5b3c7fa694497a9b68af81",
      "tree": "07b9504b50069f98e24bd86637c2fe528bd0133a",
      "parents": [
        "d69262d927e4866ffcf17aa399663a5d25f8249f"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Tue Dec 12 10:02:46 2023 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Tue Jan 09 11:39:48 2024 +0000"
      },
      "message": "[bssl] Improve error processing when BoringSSL API fails\n\nThis cl logs Bssl the reason and library strings for all the\nerrors from the Bssl\u0027s error queue when an API fails and returns\nthe most recent error instead of the least recent one.\n\nThe logging is helpful for debugging as not all the Bssl error\ncodes are mapped into readable enums.\n\nTest: atest libbssl_avf_nostd.test\nChange-Id: Ifaad4acfb43461ce2794a9fd2b60ac9beb64a238\n"
    },
    {
      "commit": "89d77cefbf74fbf526e89658f2f5fe46cdd98faf",
      "tree": "6cdfc6bce0fc4b6772528abeb588cda301cebc22",
      "parents": [
        "d69262d927e4866ffcf17aa399663a5d25f8249f",
        "1eab723b9e489d9602195daa462f4eb9891e5f66"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jan 09 09:28:27 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 09 09:28:27 2024 +0000"
      },
      "message": "Merge changes Id1b32a49,I230bee75 into main\n\n* changes:\n  libfdt: Make properties of FdtNode outlive\n  libfdt: Add APIs around FdtNodeMut::delete_and_next_node()\n"
    },
    {
      "commit": "1eab723b9e489d9602195daa462f4eb9891e5f66",
      "tree": "9a515c622c6e3a9dd08534282f512bc205fb4cdb",
      "parents": [
        "28a13ea56d662478cacd12e72c9575ea441fc34c"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Jan 04 09:46:16 2024 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Jan 09 14:43:50 2024 +0900"
      },
      "message": "libfdt: Make properties of FdtNode outlive\n\nProperties of FdtNode from Fdt::node() outlive than its node.\n\nThis CL makes the lifetime for subnodes() and descendants() consistent\nwith Fdt::node().\n\nBug: 317830919\nTest: atest liblibfdt.integration_test\nChange-Id: Id1b32a498ee63063c0b14bd4713135d238d76954\n"
    },
    {
      "commit": "28a13ea56d662478cacd12e72c9575ea441fc34c",
      "tree": "19fefa6d6153e2ae2147be1b063a5ef2e95f4832",
      "parents": [
        "ebab0a93000cc3414ecd77a49883fac530e35c83"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Thu Jan 04 09:22:40 2024 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Jan 09 13:44:23 2024 +0900"
      },
      "message": "libfdt: Add APIs around FdtNodeMut::delete_and_next_node()\n\nFollowing APIs are added to iterate and filter FDT nodes:\n  - FdtNodeMut::delete_and_next_node()\n  - FdtNodeMut::next_node()\n\nJust FYI, previously FdtNodeMut::*_next_subnode() were added for the\nsame purpose, but they couldn\u0027t be used for traveling the whole tree.\nBorrow checker didn\u0027t like tree travesal algorithms for both BFS nor DFS\nbecause they expect to keep multiple FdtNodeMut.\n\nBug: 317830919\nTest: atest liblibfdt.integration_test\nChange-Id: I230bee75ab15bd7349f7e03cf097f209a5690766\n"
    },
    {
      "commit": "5fb76c5656371bb4b7a86be93092ddc4fc51fe43",
      "tree": "b34ee76a46866ef6e69808536fe0fccb78cb9181",
      "parents": [
        "5a4077d52af504badab5afa0275f46b79bea36b6"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri Jan 05 13:16:13 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri Jan 05 13:21:07 2024 +0000"
      },
      "message": "[cbor] Add parse_value_array func for slice to value array conversion\n\nThis util function can be used to parse the DICE chain in other\nprojects like secretkeeper later.\n\nTest: atest libservice_vm_requests.test\nChange-Id: I93744be489dfcdb6cb43972629b576280a52fd02\n"
    },
    {
      "commit": "0322b8c36e1decd47c45e2b72e0ab8cea1a86f44",
      "tree": "5f78d3f4bae64737814a4004b5e58a7cce882932",
      "parents": [
        "f0ee3a94e222d4eaac7f06ee24af27c03fc0f8fe"
      ],
      "author": {
        "name": "Maurice Lam",
        "email": "yukl@google.com",
        "time": "Mon Dec 18 22:13:48 2023 +0000"
      },
      "committer": {
        "name": "Maurice Lam",
        "email": "yukl@google.com",
        "time": "Wed Dec 20 21:25:50 2023 +0000"
      },
      "message": "Rename bssl-ffi to bssl-sys\n\nTest: TreeHugger\nChange-Id: I7e8e1a73d47e2fbdf81a4d6b51d7d11cea56db35\n"
    },
    {
      "commit": "411ca27ffb61ec0bc56f72f8a295548044a5e8fb",
      "tree": "448d1d7bd66a9b9812a3c2399b29f701f211e8cc",
      "parents": [
        "748b19ecad7105f8da7aeb4826a0d9bf61d0cf76",
        "ee07f72eae5a1d8ad245efc0ce98f442064c69a3"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Tue Dec 19 15:13:10 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 19 15:13:10 2023 +0000"
      },
      "message": "Merge \"[pvmfw] Use AEAD wrapper from libbssl_avf\" into main"
    },
    {
      "commit": "748b19ecad7105f8da7aeb4826a0d9bf61d0cf76",
      "tree": "b0646941d30766f791af1e55c8e7992006c6f14a",
      "parents": [
        "314d7e38ff2ca8a58cf07ba1da4421f865b903f7",
        "5b879eb726adc2509ddfbc515fe9d098ec2b78b3"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Tue Dec 19 14:21:09 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 19 14:21:09 2023 +0000"
      },
      "message": "Merge \"Update for new version of der and friends.\" into main"
    },
    {
      "commit": "5f1a6039cfdcb21e04cc82d3bfe3f0796d6d78e1",
      "tree": "c38c4de7db2434e1f4884a5ca5b2d10976f86e01",
      "parents": [
        "520260145e3de1f2a8df12b4377f2b33ed6f4fd8"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Dec 18 15:17:58 2023 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Dec 18 14:23:32 2023 +0000"
      },
      "message": "libfdt: Add APIs for iterating and deleting subnodes\n\nIn detail, added following APIs for implementing FDT filtering:\n  - FdtNodeMut::first_subnode()\n  - FdtNodeMut::next_subnode()\n  - FdtNodeMut::delete_and_next_subnode()\n\nBug: 277993056\nTest: atest liblibfdt.integration_test\nChange-Id: I18f93910ed5d28c4dbb2d38119b6839046775608\n"
    },
    {
      "commit": "5b879eb726adc2509ddfbc515fe9d098ec2b78b3",
      "tree": "523ab51ade97262fa8233490e53a0a1be959ac63",
      "parents": [
        "ced549b4e85ea547395ec19b771da1ad2d404f42"
      ],
      "author": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Mon Dec 18 13:49:02 2023 +0000"
      },
      "committer": {
        "name": "Andrew Walbran",
        "email": "qwandor@google.com",
        "time": "Mon Dec 18 13:49:21 2023 +0000"
      },
      "message": "Update for new version of der and friends.\n\nTest: m rust\nChange-Id: Ib64bf6482dc58a942cb0733cfdbf0bb0c1c86480\n"
    },
    {
      "commit": "520260145e3de1f2a8df12b4377f2b33ed6f4fd8",
      "tree": "1f44c150893af6d5254d53ec7b30d062d894abee",
      "parents": [
        "ad4cc73affea92958c1069dea4a910b1e6d99254"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Wed Dec 13 13:49:28 2023 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Mon Dec 18 13:04:14 2023 +0000"
      },
      "message": "libfdt: Rework APIs for getting subnode\n\nExisting FdtNodeMut::subnode_with_name_len() has following issues:\n  - Requires mutability although it\u0027s unnecessary.\n  - Doesn\u0027t work with raw bytes if it isn\u0027t nul-terminating.\n\nThis adds following APIs to replace old API.\n  - FdtNode::subnode(\u0026self, name: \u0026CStr)\n  - FdtNode::subnode_with_name_bytes(\u0026self, name: \u0026[u8])\n\nBug: 277993056\nTest: atest liblibfdt.integration_test\nChange-Id: I60b10eefb5855571020e67b45aef017a859319cf\n"
    },
    {
      "commit": "b39fc15a315299b3084dd52a48256f8eb7241933",
      "tree": "418bf3adb2cbdb3aaaa6ac7d7971c61d140a5818",
      "parents": [
        "19234c43f24de7dda99ee28435598a58800fe15d"
      ],
      "author": {
        "name": "Hasini Gunasinghe",
        "email": "hasinitg@google.com",
        "time": "Thu Dec 14 11:13:51 2023 +0000"
      },
      "committer": {
        "name": "Hasini Gunasinghe",
        "email": "hasinitg@google.com",
        "time": "Thu Dec 14 11:13:51 2023 +0000"
      },
      "message": "Add host_supported: true\n\nThis is a dependency for system/authgraph/tests, which has\nhost_supported\u003dtrue\n\nTest: build with this change\nChange-Id: Ieb57a34ed71ef14d511a9a0ed38d02205369b0e5\n"
    },
    {
      "commit": "19234c43f24de7dda99ee28435598a58800fe15d",
      "tree": "4bb8a3904db01ad41c04ed7d1ccf05d2e5f826d4",
      "parents": [
        "ced549b4e85ea547395ec19b771da1ad2d404f42"
      ],
      "author": {
        "name": "Hasini Gunasinghe",
        "email": "hasinitg@google.com",
        "time": "Wed Dec 13 14:47:47 2023 +0000"
      },
      "committer": {
        "name": "Hasini Gunasinghe",
        "email": "hasinitg@google.com",
        "time": "Wed Dec 13 18:07:27 2023 +0000"
      },
      "message": "Make open_dice usable in system/authgraph/tests.\n\nTest: compile with this change\nChange-Id: Ieeb69e211fc4587dfe67503fdc874a224ac27a6b\n"
    },
    {
      "commit": "3397b360b2614bfbe6340b55365a7aa4764e95c6",
      "tree": "1c101c6a17343eb731c02445ab27d2a0426927a3",
      "parents": [
        "d870b20f46c81d4251a497b7699616f6719175eb"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri Dec 01 13:57:10 2023 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed Dec 13 08:46:59 2023 +0000"
      },
      "message": "[attestation] Validate DICE chain signatures and CSR signature\n\nWith subject public keys in the DICE certificates.\n\nA wrapper has been added around ED25519_verify to support\nED25519 signature verification. The existing EVP_PKEY is not\nused because the verification with EVP_PKEY requires converting\nthe ED25519 public key to EVP_PKEY. This conversion with\nEVP_PKEY_new_raw_public_key increases the rialto image size\nby an extra 90KB.\n\nBug: 314266221\nBug: 310931749\nTest: atest rialto_test\nChange-Id: I82cc58441b4f4730e46e9de7a0efa03959d8d137\n"
    },
    {
      "commit": "ee07f72eae5a1d8ad245efc0ce98f442064c69a3",
      "tree": "6a33852e94f0db9402eb2a0a0c4e836a93de45bc",
      "parents": [
        "a422a6a8b914697119b224df1627c084f6daea5c"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Tue Oct 03 15:20:17 2023 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Mon Dec 11 16:03:19 2023 +0000"
      },
      "message": "[pvmfw] Use AEAD wrapper from libbssl_avf\n\nThis cl replaces the AEAD bssl wrappers in pvmfw with the ones in\nlibbssl_avf. The wrappers in libbssl_avf have undergone thorough\ntesting, and the context is cleaned and freed when it is dropped.\n\nThis cl decreases the size of pvmfw.bin from 532512 bytes to\n511648 bytes.\n\nBug: 302286887\nTest: atest MicrodroidHostTests\nChange-Id: Iba12469410dd1069fb9c48b666010ff158cc1327\n"
    },
    {
      "commit": "e8dc69e062a2113719da572e572e70708d0e19e7",
      "tree": "d8f5853eb60564ff44a78e53e08fe42479aaef2c",
      "parents": [
        "53480126350f7eaaed47e2534bd23b3a666be092",
        "dd29c5d064fa1eb8b14641fbe4fafa2a8c54439b"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Dec 07 19:51:45 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 07 19:51:45 2023 +0000"
      },
      "message": "Merge \"[refactoring] Group all the CBOR util functions in cbor_util\" into main"
    },
    {
      "commit": "dd29c5d064fa1eb8b14641fbe4fafa2a8c54439b",
      "tree": "68d41be4aedc4508373e03881e04aebb0ef1d735",
      "parents": [
        "34ef7b7e37fa3f4e97739cda936755246e2aeedf"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Dec 07 09:56:23 2023 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Dec 07 16:18:57 2023 +0000"
      },
      "message": "[refactoring] Group all the CBOR util functions in cbor_util\n\nThis cl only moves all the CBOR utility functions in one place.\nSome return error types are adjusted to adapt the change. There\nshould be no behavior change.\n\nBug: 310931749\nTest: atest rialto_test\nChange-Id: Ie3db9c93b1355d25d7d796818e19e554560e1f23\n"
    }
  ],
  "next": "c09010aaf39d47c8e2a477f752b8419464b0614a"
}
