)]}'
{
  "log": [
    {
      "commit": "a442e67e3de76bd2d1b850202ae8154d38e161e8",
      "tree": "9051c0937cbffaf988c80a31dbd787cb1465edbb",
      "parents": [
        "835abfe2b75358b4eca742b0ec6a7b5e9a237c2f"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Wed Jun 19 16:18:07 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Wed Jun 19 16:18:07 2024 +0900"
      },
      "message": "Implement disableVmTethering\n\nBug: 340376953\nTest: atest MicrodroidTests\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid --network-supported\nChange-Id: I575b025bc83ec4028ea9b10c3017319c9ecf842d\n"
    },
    {
      "commit": "548346e09b1889f67c88bbbee0baf1bf436388cd",
      "tree": "433cfef6a31fb6bf0b6810e1ee3db5061b5f0e8e",
      "parents": [
        "a71230e6717892527571d836ffdc546c3826b75b"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Wed Jun 19 16:18:06 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Wed Jun 19 16:18:06 2024 +0900"
      },
      "message": "Implement enableVmTethering\n\nBug: 340376953\nTest: atest MicrodroidTests\n\nChange-Id: I47606e0826fe5db47f0baeea5e44f69865a00b30\n"
    },
    {
      "commit": "b6e4f1db32a3b65de418652e05c8c247c72072b0",
      "tree": "64ca6d0c0a856e521bcc697e4c7b25e591c71ee4",
      "parents": [
        "8808313b1382b203e4a3fb28c0363390ad6daef6"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Mon Jun 17 15:13:12 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Wed Jun 19 10:26:48 2024 +0900"
      },
      "message": "Skeleton for IVmTethering service with flag guarding\n\nThis reverts commit f9676878292a49caa03e5270c3be2769b029db60.\n\nBug: 340376953\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid --network-supported\n\nChange-Id: I9c859dd43e7ba7c852a71afce8f36ca10477ad24\n"
    },
    {
      "commit": "32be59b1fc06fcc2319f970b66146c3fb02bd604",
      "tree": "ea50836e067c1380b3f3702e67b1c3a0f989d4b7",
      "parents": [
        "021c081034ab083123ef4c524a4a8ef89d5e859a",
        "f239dc4f451312e101009762615cc83f7a3ab61c"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Mon Jun 17 06:01:38 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 17 06:01:38 2024 +0000"
      },
      "message": "Merge changes from topic \"fc_network_no_persist\" into main\n\n* changes:\n  Open /dev/tun with write permission in vmnic\n  Remove TUNSETPERSIST in vmnic\n"
    },
    {
      "commit": "6d238d84dca1eaadcd6564add3c1690bd7a3ba92",
      "tree": "5f39cd859636e41218c36dc34b30f118630143bd",
      "parents": [
        "b081fe2f56b461eb3a240719e612bb66e516a0b4",
        "2fbf0da8819353ce046e5d79dd09a5648277d4ee"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Mon Jun 17 03:47:56 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 17 03:47:56 2024 +0000"
      },
      "message": "Merge \"Add `vm console` command to connect to serial console\" into main"
    },
    {
      "commit": "df7855fb7a56841c9a05db89a0bb3e7f781111ff",
      "tree": "198c4fe1bf3bf3ac5a9affdb8a068f741e15f529",
      "parents": [
        "11a61cd0991f0ebe1fa46fce3f775a5f591268e5",
        "d3f7642f04475e43b43e1bd5f8dd221d4cb04673"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Mon Jun 17 00:51:47 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 17 00:51:47 2024 +0000"
      },
      "message": "Merge \"Small fix of type conversion of TUNGETIFF in vmnic\" into main"
    },
    {
      "commit": "24af4a55816ac3c438805da0c92ce2b749fdabe8",
      "tree": "485b6c1ebb1a1769d6ab5ca5b8e933506b6c222c",
      "parents": [
        "2f7656a59638f16a2fd457dfe40efc83f9cce085",
        "ea7b0fa0dfed59eb7f393af7f72b188ee20204ad"
      ],
      "author": {
        "name": "Jason Macnak",
        "email": "natsu@google.com",
        "time": "Fri Jun 14 20:45:23 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 14 20:45:23 2024 +0000"
      },
      "message": "Merge \"Add GpuConfig\" into main"
    },
    {
      "commit": "ea7b0fa0dfed59eb7f393af7f72b188ee20204ad",
      "tree": "fc80741ccc762474da85afc3b2f631dd02cb2f27",
      "parents": [
        "b08051f949755d9f6cf5097d8d373209569309b7"
      ],
      "author": {
        "name": "Jason Macnak",
        "email": "natsu@google.com",
        "time": "Wed May 08 17:02:44 2024 -0700"
      },
      "committer": {
        "name": "Jason Macnak",
        "email": "natsu@google.com",
        "time": "Fri Jun 14 09:00:32 2024 -0700"
      },
      "message": "Add GpuConfig\n\nNote: existing vm_config.json\u0027s should be updated with a\n\n    \"gpu\": {\n        \"backend\": \"virglrenderer\",\n        \"context_types\": [\n            \"virgl2\"\n        ]\n    },\n\nsection to preserve existing behavior when running with a display.\n\nBug: b/325929500\nTest: launch Cuttlefish on Lynx\nChange-Id: Ibb7569989c855cbfb463182d82aaa1ebc0a2103c\n"
    },
    {
      "commit": "2f7656a59638f16a2fd457dfe40efc83f9cce085",
      "tree": "a0195cdcc846833fb34bf55c57c5900de828ff21",
      "parents": [
        "b08051f949755d9f6cf5097d8d373209569309b7",
        "f9676878292a49caa03e5270c3be2769b029db60"
      ],
      "author": {
        "name": "Priyanka Advani",
        "email": "padvani@google.com",
        "time": "Fri Jun 14 15:55:12 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 14 15:55:12 2024 +0000"
      },
      "message": "Merge \"Revert \"Skeleton for IVmTethering service\"\" into main"
    },
    {
      "commit": "2fbf0da8819353ce046e5d79dd09a5648277d4ee",
      "tree": "57b032b5948df3238371c7356da6819c24995e12",
      "parents": [
        "b08051f949755d9f6cf5097d8d373209569309b7"
      ],
      "author": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jun 14 22:56:56 2024 +0800"
      },
      "committer": {
        "name": "Yi-Yo Chiang",
        "email": "yochiang@google.com",
        "time": "Fri Jun 14 23:08:20 2024 +0800"
      },
      "message": "Add `vm console` command to connect to serial console\n\n`vm console` automatically connects to the first available VM.\n`vm console CID` connects to the specified VM.\n\n* Must also pass the `-t` flag to adb-shell to ensure adbd allocates a\n  tty.\n\nBug: 335362012\nTest: Launch FC and connect to serial console\n  adb shell -t /apex/com.android.virt/bin/vm console\nChange-Id: If5f1537d8994593ab7fa026bf98986c6a8c83cb5\n"
    },
    {
      "commit": "f9676878292a49caa03e5270c3be2769b029db60",
      "tree": "b6ca7e69c35ac9f3b376d369565bbf2898434d20",
      "parents": [
        "bb7b613318dfd703d95b8290d9d00b1a30806f27"
      ],
      "author": {
        "name": "ELIYAZ MOMIN",
        "email": "mohammedeliyaz@google.com",
        "time": "Fri Jun 14 11:43:55 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 14 11:44:02 2024 +0000"
      },
      "message": "Revert \"Skeleton for IVmTethering service\"\n\nRevert submission 3121391-vt_skeleton\n\nReason for revert: \u003cPotential culprit for b/347203579  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.\u003e\n\nReverted changes: /q/submissionid:3121391-vt_skeleton\n\nChange-Id: Iea846828d0823a7b60a66a2d3912d640fac6de34\n"
    },
    {
      "commit": "f239dc4f451312e101009762615cc83f7a3ab61c",
      "tree": "dc88b8aaf979707370341858b74d47cfaf49a4d9",
      "parents": [
        "f9fbe93705063195567fe96085348144271b5d78"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Fri Jun 14 16:25:23 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Fri Jun 14 16:26:33 2024 +0900"
      },
      "message": "Open /dev/tun with write permission in vmnic\n\nBug: 340376951\nTest: atest MicrodroidTests\nChange-Id: Ibfec58aa0a2bb8a62fae3f8d81ab7e412d834248\n"
    },
    {
      "commit": "f9fbe93705063195567fe96085348144271b5d78",
      "tree": "bd4c19af2f382a4d004cc97f85e623ad5f72277d",
      "parents": [
        "d3f7642f04475e43b43e1bd5f8dd221d4cb04673"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Fri Jun 14 16:23:15 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Fri Jun 14 16:26:19 2024 +0900"
      },
      "message": "Remove TUNSETPERSIST in vmnic\n\nLeaving TUNSETPERSIST in vmnic could cause a problem when virtmgr\nsuddenly died without fully executing monitor_vm_exit\n\nBug: 340376951\nTest: atest MicrodroidTests\nChange-Id: I1a0136067fbf03492b2670cf77486c69c79494ec\n"
    },
    {
      "commit": "d3f7642f04475e43b43e1bd5f8dd221d4cb04673",
      "tree": "dd8136c1210b9d2bd6de7294b9a97905be948c42",
      "parents": [
        "10305195ca6001b2a57725b0c5077e5f1dcda1cc"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Fri Jun 14 15:26:51 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Fri Jun 14 16:21:48 2024 +0900"
      },
      "message": "Small fix of type conversion of TUNGETIFF in vmnic\n\nBug: 340376951\nTest: Presubmit\nChange-Id: Ic4f11e43809c05b8e77ce69bd283b4178b32d7bd\n"
    },
    {
      "commit": "75e920b80dd7f0613b7c5ffb5f59ac46f6d8cc37",
      "tree": "0c84a6402b2fec109f7a1597fc3cb9febdf1de09",
      "parents": [
        "e4e7071ce5d2642b321ebd510c26d5e2e1137d01"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Jun 14 06:12:37 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Jun 14 06:48:32 2024 +0000"
      },
      "message": "Instance_id: Log only the first 8 bytes\n\ninstance-id of a VM is somewhat private to the app owning the VM, do not\nlog it in full\n\nTest: Builds\nBug: 331349693\nChange-Id: I2306efb95ecec13153e2e9a0c5c8600f21fa02c2\n"
    },
    {
      "commit": "10305195ca6001b2a57725b0c5077e5f1dcda1cc",
      "tree": "697ad6c0bfbcffe9d9f746d284db6f3be64f44b2",
      "parents": [
        "23cff7159e87c73d4b46b6db1f5fc81d67f41eba",
        "bb7b613318dfd703d95b8290d9d00b1a30806f27"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Fri Jun 14 05:43:49 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jun 14 05:43:49 2024 +0000"
      },
      "message": "Merge \"Skeleton for IVmTethering service\" into main"
    },
    {
      "commit": "23cff7159e87c73d4b46b6db1f5fc81d67f41eba",
      "tree": "86f2b07a47c1b104e6e0407b6338d16c8bda46d7",
      "parents": [
        "4ec136b3f76fa8dc5ca7e2ad948c6826c1651eef"
      ],
      "author": {
        "name": "David Dai",
        "email": "davidai@google.com",
        "time": "Thu Jun 13 19:23:45 2024 +0000"
      },
      "committer": {
        "name": "David Dai",
        "email": "davidai@google.com",
        "time": "Thu Jun 13 23:21:01 2024 +0000"
      },
      "message": "virtmgr: Add boost_uclamp\n\nTo ensure consistent results during testing, passes the boost_uclamp\nas a hint to the host scheduler to reduce variance and set\na mininum floor for performance.\n\nAlso enable boost_uclamp for Microdroid Boot tests,\npartially authored by ioffe.\n\nBug: 342349882\nTest: Booted a VM and checked uClamp\nChange-Id: I0d40163515d1a4e41bde6cc81916de51f798813c\nSigned-off-by: David Dai \u003cdavidai@google.com\u003e\n"
    },
    {
      "commit": "bb7b613318dfd703d95b8290d9d00b1a30806f27",
      "tree": "21358ec3e1d4978b429f9cc96503edef221ba325",
      "parents": [
        "03b3347b12177a9284f92f1d4281f6863df490eb"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Thu Jun 13 11:07:29 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Thu Jun 13 13:08:57 2024 +0900"
      },
      "message": "Skeleton for IVmTethering service\n\nBug: 340376953\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid --network-supported\nChange-Id: Idab701f3c684e62629bfe02b7a6ad7904d311f14\n"
    },
    {
      "commit": "3271f17d8d91acfd1665814ba14947515959f963",
      "tree": "b8f0c50a40b05c038556718b23c88fa3b0fcd9f9",
      "parents": [
        "a6589bdcccce47314f648573cc53dcc9f6a5b666"
      ],
      "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:39:29 2024 +0900"
      },
      "message": "Implement deleting TAP interface in vmnic\n\nBug: 340376951\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid --network-supported\nTest: atest MicrodroidTests\n\nChange-Id: Ie224b6bd586fac06a740d9fa8344e19c9d290761\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": "8e68bfbc30a497196f0dbec641d0e118c883abb7",
      "tree": "0615644b5f540c8732c56f7741a26181ecf7d021",
      "parents": [
        "b1664929f8d2b671fe06d19a5be42c138018b48d",
        "eec580d7a5c1896701019af13be2d3c000521277"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Mon Jun 10 11:31:52 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 10 11:31:52 2024 +0000"
      },
      "message": "Merge \"Check whether remote attestation is supported with system property\" into main"
    },
    {
      "commit": "eec580d7a5c1896701019af13be2d3c000521277",
      "tree": "97334801991313c5200810ec77ec9c38f869beff",
      "parents": [
        "55e57b98cdb27d292b80a07a5881a8b46f0ee8c4"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri Jun 07 08:48:06 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Mon Jun 10 09:40:46 2024 +0000"
      },
      "message": "Check whether remote attestation is supported with system property\n\nThis cl introduces a new system property\navf.remote_attestation.enabled to allow vendors to\ndisable the remote attestation feature in vendor init.\n\nBug: 341598459\nTest: enable/disable the feature and check VmAttestationTestApp\n\nChange-Id: I5b26ba029ea1be74d8c0d139d69aee608c92f327\n"
    },
    {
      "commit": "49b9a009fed12ba14f6b9b26d74e12caa8ebf922",
      "tree": "e09524413418efdd3dfb887353fea7019fc3ac59",
      "parents": [
        "7b09068c99b04445a2c50a16ea7320fcc18b6b57",
        "de40e641be35687fb94fbb47a06468b8b8d80e46"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue Jun 04 15:06:09 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 04 15:06:09 2024 +0000"
      },
      "message": "Merge \"Only delete owned VM IDs\" into main"
    },
    {
      "commit": "de40e641be35687fb94fbb47a06468b8b8d80e46",
      "tree": "e9f52369d00fb74e006ff7cbf49b007b8cf5c761",
      "parents": [
        "55e57b98cdb27d292b80a07a5881a8b46f0ee8c4"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Jun 04 13:36:05 2024 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Jun 04 14:44:22 2024 +0100"
      },
      "message": "Only delete owned VM IDs\n\nWhen a VM is deleted, only delete its secret from Secretkeeper (and\nour tracking DB) if we believe it is owned by the caller.\n\nThis is intended to handle the VM transfer case - on transfer we mark\nthe recipient as owner, and we want them to retain access until they\ndelete the VM. The previous owner is encouraged to delete their copy\nimmediately, which shouldn\u0027t invalidate the secret.\n\nModify our e2e test for VM transfer to do the deletion after transfer\nand before starting the VM, so we are exercising the expected use\ncase. This test then fails, as expected, without the code chage and\npassed with it.\n\nBug: 340563554\nTest: atest com.android.microdroid.test.MicrodroidTests#testShareVmWithAnotherApp\nChange-Id: I1929a1a3e2f92343629f15893a3a68f51d244afc\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": "6c6535d07ef6be7f4957640cc627bac599d12bce",
      "tree": "dc33c28fd96c80ced362ae4aa0be117858801b16",
      "parents": [
        "11c152d34c5a1b57edf0691466360f661777ed7e"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri May 31 06:45:31 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri May 31 06:51:29 2024 +0000"
      },
      "message": "Register RKP HAL only when it is declared in VINTF\n\nNo need to register the hal unless it is declared in VINTF.\n\nTest: Disable remote attestation and run an app with VM\nto check there\u0027s no error for the registration.\nBug: 343576424\n\nChange-Id: Ia5df43b2a15156976b68a09695e4e89dd8bc0710\n"
    },
    {
      "commit": "986d7a47d3aacac976f44097744104a34dd13146",
      "tree": "16113361e5ad6718b2a5e6c93b25b41d8409e5da",
      "parents": [
        "0a442662dec1dd253d5fb00d2ad0fb0869dbe4ac"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Tue May 28 14:06:58 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Thu May 30 10:15:04 2024 +0900"
      },
      "message": "Link TAP interface to VM\n\nBug: 340376951\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid\n--network-supported\n\nChange-Id: I1937d9bd7393942541aa8c8e545a2aa7704de501\n"
    },
    {
      "commit": "0a442662dec1dd253d5fb00d2ad0fb0869dbe4ac",
      "tree": "9e63bd15b47c6a3eca15343f26dd555229204b13",
      "parents": [
        "569d56e364426458106260488192feb22e7e8648"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Mon May 20 16:35:49 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Wed May 29 12:39:36 2024 +0900"
      },
      "message": "Implement createTapInterface in vmnic\n\nBug: 340376951\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid --network-supported\nTest: adb shell ifconfig\n\nChange-Id: Ia9d4f196ce6e37192f106786ba4f3f2c6ee5a4e4\n"
    },
    {
      "commit": "1cba46d4b5dbec9fe131fb4102601416317317db",
      "tree": "b58ff51c69ae63916fc4ebc7d594fcdf2cadf36a",
      "parents": [
        "578d4563a549c26ab0c1cbbbe4c0bf2d4780f6f5",
        "b2a0287342deeea2744678008c5a5e5aba1079ac"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 21 09:31:27 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 21 09:31:27 2024 +0000"
      },
      "message": "Merge \"binder::get_interface -\u003e binder::wait_for_interface\" into main"
    },
    {
      "commit": "13af0b616aee1cfe832485501eccec57b123a866",
      "tree": "f095ff968963d9afadd24b22312d22b0149549ed",
      "parents": [
        "2af7b9f4acde2e4fc2891015c0a774ff168ab7e8"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Mon May 20 14:15:13 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Tue May 21 11:25:43 2024 +0900"
      },
      "message": "bin/vm run-microdroid supports --network-supported flag.\n\nBug: 340376951\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid\n--network-supported\nTest: adb shell /apex/com.android.virt/bin/vm run-microdroid\n--network-supported --protected\n\nChange-Id: I1d88fe11d79b8ea46e12b6dfaab318aabdc0a2e0\n"
    },
    {
      "commit": "b2a0287342deeea2744678008c5a5e5aba1079ac",
      "tree": "97cf1fe39eeb8613da2edffabdf90c9dc394e9a1",
      "parents": [
        "9290081b6a28d5ab49ea826b4678b56d84028b52"
      ],
      "author": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Wed May 08 13:35:12 2024 -0700"
      },
      "committer": {
        "name": "Frederick Mayle",
        "email": "fmayle@google.com",
        "time": "Mon May 20 18:48:29 2024 +0000"
      },
      "message": "binder::get_interface -\u003e binder::wait_for_interface\n\nbinder::get_interface is deprecated.\n\nBug: 339248908\nTest: TH\nChange-Id: I3e9b317a42aae192d503beaad9f3546dc4d6e6ac\n"
    },
    {
      "commit": "2af7b9f4acde2e4fc2891015c0a774ff168ab7e8",
      "tree": "d65b753fac88587c8c1fe9cf58c39d7dc1beed1f",
      "parents": [
        "dd7db8d7c695f02ce92ec342cec88b0e52c3ccd9",
        "343894e3c144ab944b575dab97cdc52004aeaaad"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri May 17 13:40:37 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 17 13:40:37 2024 +0000"
      },
      "message": "Merge \"Support mouse in VM\" into main"
    },
    {
      "commit": "343894e3c144ab944b575dab97cdc52004aeaaad",
      "tree": "02654c1b0a3aacac8ecd5e820d7fa7819d39ac21",
      "parents": [
        "00a957331c1724cf9bc925faeed147b0e23cfc8b"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri May 17 20:39:31 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Fri May 17 20:42:39 2024 +0900"
      },
      "message": "Support mouse in VM\n\n1. By requestPointerCapture, make the app exclusively use the mouse event.\n2. Add backgroundTouchView because it looks like set onTouch and\n   onCapturedPointer listeners to the same view doesn\u0027t work as expected\n3. requestUnbufferedDispatch because of pointer latency\n\nBug: 325930922\nTest: move/click/wheel\nChange-Id: I44cdbda923cb18467ab611c342a3ae4e4112403b\n"
    },
    {
      "commit": "fa9cc6516978a86a907e757eb57bc87e57e16d80",
      "tree": "de5a66d6a8b87964ef0857cb366495db02736d3b",
      "parents": [
        "8840569daa95ad039d8d64a4739325aec8a3c75f",
        "529d53c8a39c5d88a143b0f85d1c0cd6eefbc6cc"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu May 16 23:44:39 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu May 16 23:44:39 2024 +0000"
      },
      "message": "Merge \"Define skeleton code of vmnic(Virtual Machine Network Interface Creator)\" into main"
    },
    {
      "commit": "00a957331c1724cf9bc925faeed147b0e23cfc8b",
      "tree": "96b8c2f57fff3896954f879d68183883f02c92da",
      "parents": [
        "73604ccd988c56b54db022be67ad039475c18a0d",
        "538a2c631db36d0f69ad6413bc3270c7dc660e58"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed May 15 09:38:44 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 15 09:38:44 2024 +0000"
      },
      "message": "Merge \"virtmgr: Pass hugepages to crosvm\" into main"
    },
    {
      "commit": "b341c383debd2395e6be2747338c763de41ff0a8",
      "tree": "16faca3a600944e839a81ef753c638600282a344",
      "parents": [
        "0b4b7763dfce88b6b523ea4ad9b5df2eb246594c",
        "72820a99a788676b99130d012f03cbb4776592e9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Tue May 14 10:37:35 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue May 14 10:37:35 2024 +0000"
      },
      "message": "Merge \"VS: Connect to Secretkeeper lazily\" into main"
    },
    {
      "commit": "72820a99a788676b99130d012f03cbb4776592e9",
      "tree": "2aba1eb92c05cf9c74baad85679352b602bf7864",
      "parents": [
        "97011cfed31cae41028e01e5e27f067eb301a253"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon May 13 13:38:50 2024 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue May 14 10:20:39 2024 +0100"
      },
      "message": "VS: Connect to Secretkeeper lazily\n\nRather than attempting to connect to Sk immediately if we believe it\u0027s\npresent, wait until we need it (for maintenance, or when\ncreating/deleting/updating a VM secret).\n\nThis avoids an issue where we fail to connect when Isolated\nCompilation runs a VM during boot, where Secretkeeper is not yet\nstarted.\n\nSlightly gratuitously, split up some long imports to allow\nauto-reformatting to work.\n\nBug: 331417880\nTest: atest MicrodroidTests\nTest: atest virtualizationservice_test\nTest: Manually run CompOS, check no delay\nChange-Id: I3db2070417bb1911fd8349e4bef9a420144ac245\n"
    },
    {
      "commit": "529d53c8a39c5d88a143b0f85d1c0cd6eefbc6cc",
      "tree": "2f5641e06b1cbeefe48dc40626350e446c49af5e",
      "parents": [
        "d1475079d3b676f95bccb5ff2155d001ccf5de9a"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Tue May 14 14:36:18 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Tue May 14 17:28:08 2024 +0900"
      },
      "message": "Define skeleton code of vmnic(Virtual Machine Network Interface Creator)\n\nPurpose of this change is to define skeleton code of vmnic, so that\ncom.android.virt APEX contain the initial version of vmnic rust binary\nwith flag guarding. Vmnic called by other components is the scope of\nfollowing change, not this one.\n\nBug: 340376951\nTest: adb shell ls /apex/com.android.virt/bin\nChange-Id: Ic389944ecf4a98568a4d1771778844dbadeb2bf3\n"
    },
    {
      "commit": "0b4b7763dfce88b6b523ea4ad9b5df2eb246594c",
      "tree": "dcd9e4083f231217443ae66abaa2e208207f65b4",
      "parents": [
        "d1475079d3b676f95bccb5ff2155d001ccf5de9a"
      ],
      "author": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Tue May 14 14:47:20 2024 +0900"
      },
      "committer": {
        "name": "Seungjae Yoo",
        "email": "seungjaeyoo@google.com",
        "time": "Tue May 14 14:47:20 2024 +0900"
      },
      "message": "Fixed comment introducing vfio_handler/src/aidl.rs\n\nBug: N/A\nTest: N/A\nChange-Id: Ia9258567f1cc6b7ad6a5386270abccb7ceddd047\n"
    },
    {
      "commit": "538a2c631db36d0f69ad6413bc3270c7dc660e58",
      "tree": "dc8eb41eef26e5628e404f51bc611d8f31da15ab",
      "parents": [
        "fe6eaa2122e964eb298f75a6698432fe9c1789b5"
      ],
      "author": {
        "name": "Vincent Donnefort",
        "email": "vdonnefort@google.com",
        "time": "Wed Mar 20 16:01:10 2024 +0000"
      },
      "committer": {
        "name": "Vincent Donnefort",
        "email": "vdonnefort@google.com",
        "time": "Fri May 10 17:03:45 2024 +0100"
      },
      "message": "virtmgr: Pass hugepages to crosvm\n\nNow crosvm applies block alignment (\"arm64: Align RAM region with the\nblock size\") when mmaping the RAM region for a VM, it is possible to\nback this memory with THP (transparent-hugepages). This is controlled by\neither the VM config option \"hugepages\" or the \"bin/vm\" option\n\"--hugepages\"\n\nEnabling --hugepages makes crosvm \"madvise(MADV_HUGEPAGE)\" that region.\nThis will have at the moment no effect on Android as the default value\nfor /sys/kernel/mm/transparent_hugepages/shmem_enabled is [never].\nHowever, it\u0027ll enable OEMs to turn on the feature by tweaking the latter\nknob.\n\nUsing THP brings a significant performance improvement by reducing the\nnumber of fault necessary when using a VM (/512 for a 4K pages Arm\nmachine) and reducing the pressure on the TLB (for both stage-1 and\nstage-2). However, finding huge pages might be a difficult task when the\nsystem has been running for a long time and the memory is quite\nfragmented. khugepaged helps promoting pages to huge-pages but running\nit has a cost and might delay the memory allocation depending on the\nchosen defrag policy.\n\nBug: 278011447\nChange-Id: I954f93df4f08ad015958d36d115d9f9e0c3547b5\n"
    },
    {
      "commit": "c96b35e648714b7ce069135cc391470912f9dfb4",
      "tree": "83503c100597f7cb5566281cf9598d4629510d4e",
      "parents": [
        "b0d12a730913dfaad9bea2ae81f5058d898aa996"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Fri May 03 13:21:20 2024 +0100"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue May 07 15:37:29 2024 +0100"
      },
      "message": "Allow marking a VM non-updatable\n\nWhere a VM will never need to be updated we can mark it as\nsuch. Currently this is used to disable use of Secretkeeper for the\nVM, falling back to checking for identical code.\n\nBug: 338022149\nTest: TH\nChange-Id: I4ebc76b84106f13e63d2cc19cff108421cbc4f49\n"
    },
    {
      "commit": "985b640c45edca184635356a573ad454ec3e13d7",
      "tree": "da4d11d1f8bb8d7aad8510ef1f22d7d835742c01",
      "parents": [
        "ec8fd19bd1c543e75c4765fe6f2ba462f408b608"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Mon Apr 15 18:13:00 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Mon Apr 15 20:54:03 2024 +0900"
      },
      "message": "Implement basic keyboard input\n\nIt doesn\u0027t support some key combination, but basically works.\nIt might be an interim solution for a while until evdev is avilable.\nAnd also refactored the code about sending evts to the socket\n\nBug: 325930433\nBug: 331191129\nTest: connect keyboard\nChange-Id: I4fb0f62fd705b52b6557737a70575f9769f864e0\n"
    },
    {
      "commit": "c181be71b9436b1b2e14ce301011c6dae560a2de",
      "tree": "cf5c156184581e59eda50dde14d4d20109ea5079",
      "parents": [
        "798401cc645a4a019ba02bd4258aa5d0520eda95"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Wed Mar 27 00:18:30 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Thu Apr 11 22:11:07 2024 +0900"
      },
      "message": "Add InputDevice in VirtualMachineRawConfig\n\nStarts with single touch, evdev.\n\nBug: 331191129\nTest: build\nChange-Id: I68639dec230f2979e145e261d8584813ee1645d7\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": "ef450795e2acb4e89369680f68f75415bf437427",
      "tree": "4da2962b2e5d9659a2f90616024cf8580e0a6e17",
      "parents": [
        "d5cd6d3ca673bce21fe57badf1a1e68279a56dbc",
        "825c90f1b711dc59c44e56676a9279b14c0400de"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Apr 09 09:13:04 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 09 09:13:04 2024 +0000"
      },
      "message": "Merge \"Add a limit to how many VMs one app can own\" into main"
    },
    {
      "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": "825c90f1b711dc59c44e56676a9279b14c0400de",
      "tree": "b103985a03e4531677cf0afa656295ec4ac34ccd",
      "parents": [
        "7e8f6b5bc97b38f2887cc8478945b60d72511725"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Mar 26 12:45:29 2024 +0000"
      },
      "committer": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Mon Apr 08 17:20:55 2024 +0100"
      },
      "message": "Add a limit to how many VMs one app can own\n\nRunning `atest MicrodroidTests` creates ~260 VMs, so choose a bigger\nlimit.\n\nBug: 294177871\nTest: virtualizationservice_test\nChange-Id: Idb1b7a54d1ff8fb79f7024d325221b3912560b0a\n"
    },
    {
      "commit": "da8eacceff6a21b4ddda23f7d38ec35b37c2c54e",
      "tree": "ec7ff12b221a4665e1870e19cd1f51428721db08",
      "parents": [
        "7e8f6b5bc97b38f2887cc8478945b60d72511725",
        "1df1c0383d573193da102309252ab1a8e99fcc09"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Fri Apr 05 17:40:17 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 05 17:40:17 2024 +0000"
      },
      "message": "Merge \"Add display config for CustomImageConfig\" into main"
    },
    {
      "commit": "1df1c0383d573193da102309252ab1a8e99fcc09",
      "tree": "096c52aba734c894a0b004e30a165de2eebc9b92",
      "parents": [
        "39605c3afd52eddf327e2aa742c497124506a85a"
      ],
      "author": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Wed Apr 03 16:03:12 2024 +0900"
      },
      "committer": {
        "name": "Jeongik Cha",
        "email": "jeongik@google.com",
        "time": "Sat Apr 06 01:09:43 2024 +0900"
      },
      "message": "Add display config for CustomImageConfig\n\nFor now, display config include display size info and refresh rate\n\nBug: 331708504\nTest: check if the screen shows\nChange-Id: I0f41822c756b56d17efa6150f0c3ec28628371d4\n"
    },
    {
      "commit": "1c52f8c8e538fa9fee1a18fc5ad5883d39ac27a8",
      "tree": "28c723a574ad5d31e599df56ea0f50c182222065",
      "parents": [
        "ef24801ce8003d224a042f4193bc391ecfcd38c0",
        "07d701c8eb6baf3a7033013c2b8875698ff2cc87"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Apr 05 09:54:45 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 05 09:54:45 2024 +0000"
      },
      "message": "Merge \"Notify VS of an instance being removed\" into main"
    },
    {
      "commit": "ef24801ce8003d224a042f4193bc391ecfcd38c0",
      "tree": "ac7cafdf35b1a95a046083c5c4da5c1b89cd3c68",
      "parents": [
        "39605c3afd52eddf327e2aa742c497124506a85a",
        "bd5eba9959f9a2127a18eda144db0df8b397c88d"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Apr 05 09:54:17 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Apr 05 09:54:17 2024 +0000"
      },
      "message": "Merge \"Claim ownership of VM instance during VM transfer\" into main"
    },
    {
      "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": "07d701c8eb6baf3a7033013c2b8875698ff2cc87",
      "tree": "33822465f97963c5dda89a4adde71739d05241db",
      "parents": [
        "bd5eba9959f9a2127a18eda144db0df8b397c88d"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Thu Mar 28 14:43:52 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Thu Apr 04 17:00:31 2024 +0000"
      },
      "message": "Notify VS of an instance being removed\n\nVS maintains a global database of VM instances. It needs to be notified\nfor each of the VM instance being deleted.\n\nTest: atest MicrodroidTests#vmmGetAndCreate \\\n\t\u0026 watch for logs \"removeVmInstance():*\"\nBug: 294177871\nChange-Id: I21e4f6ae466cacfb594bd084efdc0e72ddb50a8b\n"
    },
    {
      "commit": "bd5eba9959f9a2127a18eda144db0df8b397c88d",
      "tree": "2cf39abb455d2a6bf22f71091b60e023aa1f1d1b",
      "parents": [
        "ae05ea3d04b6a85a7d0f5d8f4202700340f2f966"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Mar 27 20:23:31 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Thu Apr 04 16:58:42 2024 +0000"
      },
      "message": "Claim ownership of VM instance during VM transfer\n\nApps can transfer a VM instance to another. Claim the ownership of the\nVM (at the receiver end) using `claimVmInstance`.\n\nAdditionally, check that caller has the permission while allocating\ninstance_id.\n\nTest: atest #importedVmAndOriginalVmHaveTheSameCdi \\\n  and look for log \"Claiming a VM\u0027s instance_id *\"\nBug: 294177871\nChange-Id: I870a3ff48cb39bdc8be9cfbb7f55aa1148596c44\n"
    },
    {
      "commit": "b621a5239d97001fd5032b07d940f5c688cf3dab",
      "tree": "e69b20a3c08fee050206d62abf1aba82345fc217",
      "parents": [
        "739e6b9602412c7cdde668122bf7d106057ff149",
        "3aa62b3990f54de8b2b17c1ffda5c23c4ea4cbd3"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Mar 26 11:29:57 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 26 11:29:57 2024 +0000"
      },
      "message": "Merge \"Allow a new owner to claim a VM ID\" into main"
    },
    {
      "commit": "0c99c61f393400700e5737d4984abcf99110c6c9",
      "tree": "762795cf0f4e8caf2326ccd8c22ec72b05906172",
      "parents": [
        "1da2d5d07fd919ede75e53859d3ed3f28e751ff4"
      ],
      "author": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Sat Mar 23 00:44:14 2024 +0900"
      },
      "committer": {
        "name": "Jaewan Kim",
        "email": "jaewan@google.com",
        "time": "Tue Mar 26 02:27:40 2024 +0000"
      },
      "message": "Add more strict device assignment test\n\nBug: 326539895\nTest: atest MicrodroidHostTestCases\nChange-Id: Icf7deafaaad586131026c8de864ec97539d37996\n"
    },
    {
      "commit": "3aa62b3990f54de8b2b17c1ffda5c23c4ea4cbd3",
      "tree": "c610e898ce77818c89f3b3b4732343911644e22a",
      "parents": [
        "1da2d5d07fd919ede75e53859d3ed3f28e751ff4"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Mon Mar 25 12:31:48 2024 +0000"
      },
      "committer": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Mon Mar 25 13:12:12 2024 +0000"
      },
      "message": "Allow a new owner to claim a VM ID\n\nBug: 294177871\nTest: virtualizationservice_test\nChange-Id: I285175c8d11cc402b03dd750fbe7cbf47aebae78\n"
    },
    {
      "commit": "7aef66ddb4f5083be00a3775b7b644ad787d5d52",
      "tree": "4c287cdec020156e4a4f0e4389fc5e99ffc8dc81",
      "parents": [
        "1511945705923157ad3753af549b656962e85c96"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Mar 13 00:28:41 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Mar 22 15:59:10 2024 +0000"
      },
      "message": "Test instance.img conditional to Updatable VM support\n\ninstance.img is only required if AVF does not support Updatable VM (i.e,\nSecretkeeper is not supported by device)\n\nBug: 328387716\nTest: atest MicrodroidTestApp\nChange-Id: I041eeb55d7808b0cd0c35404fd4ee8754df3fd15\n"
    },
    {
      "commit": "20cb84bffb91d2825445e70a017470224f3b62c8",
      "tree": "0a0cc298b6259eeb51edf02a6628aed6ec4dbe7c",
      "parents": [
        "721f4bec15b153c428f294a1cac0c232bdd28663",
        "0362f7f22c97bf6fc999f7db800a639509dea734"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri Mar 22 13:02:41 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 22 13:02:41 2024 +0000"
      },
      "message": "Merge \"[attestation] Add API to check AVF RKP Hal presence in VM Attestation\" into main"
    },
    {
      "commit": "0362f7f22c97bf6fc999f7db800a639509dea734",
      "tree": "8d0efbe2fa750a91ed69ca6e975137481242ea14",
      "parents": [
        "ab86c8364b0c7e2f7479a65172884786f783194f"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Mar 21 08:16:26 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Mar 21 15:57:13 2024 +0000"
      },
      "message": "[attestation] Add API to check AVF RKP Hal presence in VM Attestation\n\nThis cl adds a new API in VirtualMachineManager to check whether\nremote attestation is supported on a device.\n\nSince Remote Attestation is a strongly recommended feature for Android\nV, the new API is needed to determine whether we should proceed with\nthe Remote Attestation CTS tests.\n\nBug: 329652894\nTest: atest MicrodroidTests\nChange-Id: I0941914e7a5f1a483705d3faf7091b47ada41b1f\n"
    },
    {
      "commit": "5daec0711dd5ea29dddf213aef9c29264481ad54",
      "tree": "0b2a63a33a1d78de36126f79fecfa2f3fadb2b34",
      "parents": [
        "ab86c8364b0c7e2f7479a65172884786f783194f"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Fri Mar 15 15:31:17 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Mar 21 15:51:55 2024 +0000"
      },
      "message": "[attestation] Optimize request processing in Service VM\n\nPrior to this cl, the Service VM started and stopped for each\nindividual request, leading to inefficiency during the AVF key\nprovisioning phase where 20+ requests might arrive in quick\nsuccession.\n\nThis cl optimized this process by adding a 1-second delay before\nthe Service VM shuts down. This delay ensures the Service VM\nremains active if requests are closely spaced, preventing\nunnecessary restarts during batch processing.\n\nThis cl decreases the total duration for AVF key provisioning\nfrom ~5 seconds to 790ms on a local device.\n\nBug: 327186248\nTest: atest AvfRkpdVmAttestationTestApp \\\nVmAttestationTestApp\n\nChange-Id: I6500a535b0cd43d804281e77e90cda5d242bc41a\n"
    },
    {
      "commit": "a668cb0b5164f68d39e3572b989a73d7a0950506",
      "tree": "b4ea7b8c32cbee699779201cedf826063faafd9b",
      "parents": [
        "29c58ef3a6f2a09192d7d45357294d9fa80c7b39",
        "0dcab55bb3447c251d447fe82b6425c401bc8646"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Mar 21 14:52:47 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 14:52:47 2024 +0000"
      },
      "message": "Merge \"[attestation] Verify AVF RKP Hal presence in VM Attestation\" into main"
    },
    {
      "commit": "29c58ef3a6f2a09192d7d45357294d9fa80c7b39",
      "tree": "979a34b018f1d52b942bc5d75dfd36ab448190b8",
      "parents": [
        "7963bbeb47e8e45196d4ff52e1d6aa5de62f79af",
        "89b245928a0441eb5c897a58897e2d1b312aa209"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Mar 21 14:47:22 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 14:47:22 2024 +0000"
      },
      "message": "Merge \"Unify OS APIs into one API\" into main"
    },
    {
      "commit": "0dcab55bb3447c251d447fe82b6425c401bc8646",
      "tree": "796e9431a66f4246df000e4eeee6b196e5fa0ca3",
      "parents": [
        "7167e1a27e4d41e909466d1263a848f32caaa9e4"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed Mar 20 14:42:30 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Mar 21 13:17:16 2024 +0000"
      },
      "message": "[attestation] Verify AVF RKP Hal presence in VM Attestation\n\nThis cl adds a verification step to check the presence of AVF RKP\nHal during the VM attestation. This step ensures that in cases\nwhere a device lacks support for VM attestation, an\nAVmAttestationStatus: ATTESTATION_ERROR_UNSUPPORTED will be\nreturned to the VM.\n\nThis return status will also be used in subsequent tests to skip\nthe test if pVM remote attestation is not supported on the device.\n\nBug: 329652894\nTest: atest AvfRkpdVmAttestationTestApp\nChange-Id: If2bffde34dcd2a8bb78b9aa06f7aefc073f427d6\n"
    },
    {
      "commit": "950041c164c396cd9afd2eb3007a65c4b4859bd6",
      "tree": "6d3151872ab21e76fd5a840e0c1fe1e70857687f",
      "parents": [
        "7167e1a27e4d41e909466d1263a848f32caaa9e4",
        "1138fa04f87f9a424f595521ffd819c2f67b713c"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Thu Mar 21 13:06:17 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Mar 21 13:06:17 2024 +0000"
      },
      "message": "Merge \"Add VM reconciliation\" into main"
    },
    {
      "commit": "1138fa04f87f9a424f595521ffd819c2f67b713c",
      "tree": "7afa2e6ee73fa94105d68c4b59563d3dfbeae73b",
      "parents": [
        "cf8875cd92611f95ab93e1e6dda9ad2998004ce5"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Mar 19 13:06:23 2024 +0000"
      },
      "committer": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Thu Mar 21 07:34:31 2024 +0000"
      },
      "message": "Add VM reconciliation\n\nBug: 294177871\nTest: virtualizationservice_test\nTest: run then uninstall MicrodroidDemoApp (with removal notifications\n      hacked out)\nChange-Id: Ieb8b84506159d484f4dd701dd264ee94588b9969\n"
    },
    {
      "commit": "4f1798a724d411d437f16ca6f55ac9ff3d4f2ec0",
      "tree": "3d92691626e66f161c4b78479491f4d00899f46e",
      "parents": [
        "cca6369a0a464afef400ef6bb8b61630f15650c0",
        "e45e9426d2509bcf6a3a97f1329aad552a8c39d9"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Mar 20 14:02:48 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Mar 20 14:02:48 2024 +0000"
      },
      "message": "Merge \"MM: Check if Secretkeeper is supported from DT\" into main"
    },
    {
      "commit": "e45e9426d2509bcf6a3a97f1329aad552a8c39d9",
      "tree": "6bb2047c7d73a80a173a5b29f1f61c55721ff6eb",
      "parents": [
        "f15e027de346185bc8b8c42b1b7a573f7b054f0d"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Feb 28 21:18:10 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Wed Mar 20 11:59:53 2024 +0000"
      },
      "message": "MM: Check if Secretkeeper is supported from DT\n\nVirtmgr sets a prop in DT to indicate that Secretkeeper HAL is\nsupported. Use that as the single source of information from host. This\neliminates the vulnerability that arises when host gives different\nanswers if asked multiple times.\n\nTest: atest MicrodroidTests#encryptedStorageIsPersistent\nBug: 291213394\nChange-Id: I0bb71df64462c90dbf197b9630e7c57a94216388\n"
    },
    {
      "commit": "cf8875cd92611f95ab93e1e6dda9ad2998004ce5",
      "tree": "bebd378e49e92b711ab7d06a78478fba63583a90",
      "parents": [
        "e64de8ee55e5456aafb858c1d1b34bd3a3e5638b"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Fri Mar 15 18:16:02 2024 +0000"
      },
      "committer": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Mar 19 14:17:58 2024 +0000"
      },
      "message": "virtualizationservice: VM ID timestamp\n\nAdd an extra column holding the timestamp when an entry in the VM ID\ndatabase was added.\n\nAlong the way, add infrastructure for modifying the schema of the VM ID\ndatabase, with tests.\n\nBug: 294177871\nTest: virtualizationservice_test\nChange-Id: Ic782e6a06a46b98f336b382aa6a2ca4f9def9a33\n"
    },
    {
      "commit": "e64de8ee55e5456aafb858c1d1b34bd3a3e5638b",
      "tree": "e186bc420a989a70bd61a93a946ef1bbecd24338",
      "parents": [
        "0f07e239aac7af51410d21fe90f7faf1ed86452e"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Thu Feb 29 11:54:29 2024 +0000"
      },
      "committer": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Mar 19 14:17:50 2024 +0000"
      },
      "message": "Store VM IDs in maintenance DB\n\nBug: 294177871\nTest: virtualizationservice_test\nChange-Id: I74bc7cef3102ca036dd9912f94abba1b4c26d4d5\n"
    },
    {
      "commit": "89b245928a0441eb5c897a58897e2d1b312aa209",
      "tree": "8535297e2abeb74d2f0583414dce8adf2ef971d3",
      "parents": [
        "e7a90cc0d8ee5fde325a74949df6fcec01f0b547"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Fri Feb 23 18:59:43 2024 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Tue Mar 19 10:56:19 2024 +0900"
      },
      "message": "Unify OS APIs into one API\n\nThere are two APIs to specify a custom OS.\n* \u0027os\u0027 field in a payload config json inside an APK\n* \u0027osName\u0027 field in VirtualMachinePayloadConfig aidl parcelable\n\nBut that results in confusing and tricky APIs. For example\n* VirtualMachineConfig.Builder.setOs() can be called only with\n  VirtualMachineConfig.Builder.setPayloadBinaryName() because a payload\n  config json already has its own OS field. It\u0027s confusing because users\n  may misunderstand that customOS is only available to payload binaries.\n* We need one payload config file per one supported VM, even when they\n  are exactly same VMs except for the OS. This makes duplicated config\n  files (especially for tests).\n\nThis change unifies those two OS APIs into one, under\nVirtualMachineAppConfig.\n* AIDL API users and VM APK developers: \u0027os\u0027 field in the json config\n  will be deprecated and it will have no effect.\n* Java API users: setOs must be called if they want to use OSes other\n  than \"microdroid\".\n\nBug: 321130996\nTest: atest MicrodroidHostTests MicrodroidTests AuthFsHostTest \\\n        CustomPvmfwHostTestCases DebugPolicyHostTests \\\n        ComposHostTestCases AVFHostTestCase PvmfwImgTest\nChange-Id: I41a526c7001b4b9ff23a52bf612a996e114f292c\n"
    },
    {
      "commit": "30ccacba5ac3a353aaa691bd250c19e9cb21996b",
      "tree": "00f17c365864fb9c08a1920a456917ade4c6b718",
      "parents": [
        "61066b0c54e5fc56179172f836f6aded200cd501"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Feb 20 14:59:02 2024 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Mar 04 14:01:56 2024 +0000"
      },
      "message": "Add daily reconciliation\n\nAdd a scheduled job, to run once a day while idle \u0026 charging, to make\nsure we delete any secrets belonging to apps that are no longer\ninstalled.\n\nBug: 294177871\nTest: Manual: add a fake implementation in VS to invoke the callbacks\n  Force run the job, see log output\nChange-Id: I66e570899ed23f0ef612b552887a3016998bab40\n"
    },
    {
      "commit": "79af266acb51d3de5cd288dd1678e442c7e03432",
      "tree": "2c3592b56124f0310357fa931ec34aaa2f850e98",
      "parents": [
        "868d5a8fda4e714dfbdab5e448b1371f683de1d5"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Mon Feb 19 14:50:31 2024 +0000"
      },
      "committer": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Wed Feb 28 10:38:37 2024 +0000"
      },
      "message": "Add VM ID database and maintenance functionality\n\nConvert `VirtualizationServiceInternal` to support both the\n`IVirtualizationServiceInternal` interface and (optionally) the\n`IVirtualizationMaintenance` interface.\n\nSupport for the latter has state held in a `maintenance::State` item,\nholding both:\n- A reference to the device\u0027s Secretkeeper instance\n- An SQLite database of VM IDs and the corresponding (user_id, app_id).\n\nThe latter is implemented in a new maintenance::vmdb submodule.\n\nBug: 294177871\nTest: virtualizationservice_test\nChange-Id: I0c2f482252bc97dfdb75dd2e3a43883ab0eb3a77\n"
    },
    {
      "commit": "d15f5e9f299ab6fc3f8cc5b7454e36f422ee6473",
      "tree": "2f974c7f0da77bff53fb59a0d6c994a07146495d",
      "parents": [
        "bb39f1d105ceb5058ee62fc50ef856a5639b84ba",
        "61a74b553f792469507d1f195570b689be962e45"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Tue Feb 27 14:33:09 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 27 14:33:09 2024 +0000"
      },
      "message": "Merge \"Allocate each VM an instance_id\" into main"
    },
    {
      "commit": "61a74b553f792469507d1f195570b689be962e45",
      "tree": "f3fbb11aa75d694ff631b2e334b05104754267de",
      "parents": [
        "e9b48e81d5946a98dfd7adcc57c595df4894100b"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Feb 16 13:17:01 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Mon Feb 26 18:19:48 2024 +0000"
      },
      "message": "Allocate each VM an instance_id\n\nIntroduce a 64 bytes\u0027 long instance_id. When the VM is created, this is\nrequested from virtualization service, which randomly allocates it.\nWhile it does that, it also logs the user \u0026 the package name.\n\nThe app persists this allocated instance_id in a file `instance_id` in\nits directory for the vm instance (along with instance.img \u0026\nstorage.img). When the VirtualMachine is run, this is an input into the\nVM via DT.\n\nThis patch modifies Compos \u0026 vm binary to work with the instance_id.\n\nflagging: instance_id allocation request is conditional to flag build\ntime flag llpvm_changes, no file `instance_id` is created if the flag is\noff. `instanceId` is all 0s if the flag is off.\n\nBug: 291213394\nTest: atest MicrodroidHostTest\nTest: atest MicrodroidTests\nTest: atest ComposHostTestCases\nTest: Look for instance_id logged by VS\n\nChange-Id: Ie8e25b9510e27362d4580c55c1bd557143ff7d0e\n"
    },
    {
      "commit": "cf19805283be8b535ebeae290262a2cd3d9148e5",
      "tree": "eb90221a2ad398cb38bbc4e6bbe3221df47ef681",
      "parents": [
        "a0cbfc5de7b989c8fd5af78bfb0fcd9481e80932"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Tue Feb 20 14:59:02 2024 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Feb 26 14:34:47 2024 +0000"
      },
      "message": "Notify VS when users or apps are removed\n\nRegister for the relevant broadcasts, and when we receive them pass\nthem on to VirtualizationService.\n\nBug: 294177871\nTest: Manual; add/remove packages, users, see log messages\nChange-Id: I154f620a04f8a1afa7c34baeb4ecf10a19374dd0\n"
    },
    {
      "commit": "60e6e7efcdc9c8c04d195adb539dbcb6134930f3",
      "tree": "db2f8c873253723337ff10cb6cb27c8db4c93010",
      "parents": [
        "a722b3df07c56b6be9eab358d2a21f30ad41f2ef",
        "1654e89a838f2a7411b7a60657b78ed145a440f7"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Feb 22 20:54:23 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 22 20:54:23 2024 +0000"
      },
      "message": "Merge \"[attestation] Remove restricted API check for requestAttestation\" into main"
    },
    {
      "commit": "1654e89a838f2a7411b7a60657b78ed145a440f7",
      "tree": "02f0c7b73cef07047345eab4f2c8304240388752",
      "parents": [
        "89ecfa456508f00126c56a789cf1cdd69c87fd90"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed Feb 21 15:43:57 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Feb 22 16:39:30 2024 +0000"
      },
      "message": "[attestation] Remove restricted API check for requestAttestation\n\nAs the remote attestation feature is complete.\n\nTest: atest VmAttestationTests\nChange-Id: I555598add1c619ba3d303a0538ee593bad297dbb\n"
    },
    {
      "commit": "8b133bff26b1c38044f16de25622561f34aec0cf",
      "tree": "f06e8701f2d7044600a85991648c9e47c0924b76",
      "parents": [
        "07bdd9e41fc496530c13cdc3e7af1303286f97c2",
        "ea1f0466a945b6653f9312d7d02c2fedcde95694"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Thu Feb 22 09:45:13 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 22 09:45:13 2024 +0000"
      },
      "message": "Merge \"Add a skeleton virtualizationmaintenance service\" into main"
    },
    {
      "commit": "cdad6a3a233761694ffc55fa891d7ea8296a020b",
      "tree": "bf44e50276dc8a434d0c2e6a9eb42cf0e34648f4",
      "parents": [
        "3f1a33e43fe040187b2fe777aff722ae07ecb42f",
        "6888cef1904abd6d3b1c456d8dd2cbebee73564a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Feb 21 15:52:34 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 21 15:52:34 2024 +0000"
      },
      "message": "Merge \"[VS] Remove dependency on libvmclient\" into main"
    },
    {
      "commit": "ea1f0466a945b6653f9312d7d02c2fedcde95694",
      "tree": "f4797bc1f898aa46ae1bb2198524495c546ec4de",
      "parents": [
        "3f1a33e43fe040187b2fe777aff722ae07ecb42f"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Feb 19 16:25:47 2024 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Wed Feb 21 14:31:02 2024 +0000"
      },
      "message": "Add a skeleton virtualizationmaintenance service\n\nCreate skeleton AIDL and service implementation, wire it all up, update\nbuild files.\n\nWhile I\u0027m here, improve error handling, since it turns out that some\nof the things we assumed can never happen actually can.\n\nBug: 294177871\nBug: 326125368\nTest: atest MicrodroidTests\nChange-Id: Ib792b8d523bcf4291fa56d117f1f10fed70498d6\n"
    },
    {
      "commit": "a54332de30b2459d1862902ee31198499a9cf320",
      "tree": "a674feb338b58830a3884b4659d3b42e57e028b0",
      "parents": [
        "dc54545feb763a9bbdaf5ce5f43057de423db8cb",
        "7399e5eedca9586e859e7192c788edc5d8d134a3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Wed Feb 21 05:43:17 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 21 05:43:17 2024 +0000"
      },
      "message": "Merge \"Remove task-profile\" into main"
    },
    {
      "commit": "6888cef1904abd6d3b1c456d8dd2cbebee73564a",
      "tree": "e5fd5ced8d681d1a6e8f18151fe0d47eefe6d0d0",
      "parents": [
        "1bf3c0987ab35b8d7f91fac7063147d898379f7a"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Mon Feb 19 15:47:56 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Tue Feb 20 10:43:19 2024 +0000"
      },
      "message": "[VS] Remove dependency on libvmclient\n\nIt is not being used.\n\nTest: Builds\nChange-Id: I0665f8b0b06da8fb39305597c90bb7ac7c8aba7b\n"
    },
    {
      "commit": "12ff3cc0da98e3b940242937bf750f4e00c0c0b7",
      "tree": "aefd8a7bff1b0f9c233d445561d3ee9d9bdf87cc",
      "parents": [
        "f1ca9dd1b3d89e20c05b28dc8bef432e168c5877",
        "c204f21216c47c7622ec5f7da20782d758e2f389"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Tue Feb 20 10:41:52 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 20 10:41:52 2024 +0000"
      },
      "message": "Merge \"[Virt javalib testapi] Feature flag LLPVM_CHANGES\" into main"
    },
    {
      "commit": "7399e5eedca9586e859e7192c788edc5d8d134a3",
      "tree": "74b446601bb65ae453208c818605adb42482b10f",
      "parents": [
        "f4811814b8d876d207ef0cd29c33f2c65ba86b1c"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Feb 20 10:32:37 2024 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Feb 20 10:33:32 2024 +0900"
      },
      "message": "Remove task-profile\n\n--host-cpu-topology made it obsolete.\n\nBug: 325723941\nTest: m\nChange-Id: Id98e53cb92a1e7bbe9455f70d9426de0e8dc2008\n"
    },
    {
      "commit": "ac66707c927dec52ace000f9b78d26ac1bb4994a",
      "tree": "498f7ff5478e1e2f1248bd9fb1333b3e5a50d065",
      "parents": [
        "c909e6e33555348a76235082902583c284b904c2"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Feb 19 16:26:00 2024 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Mon Feb 19 16:32:18 2024 +0000"
      },
      "message": "Reformat imports\n\nRustfmt doesn\u0027t like an import when the path is longer than the\ndesired line length. This breaks the otherwise good auto-reformatting\nthat IDEs do. So, rearrange things so this doesn\u0027t arise.\n\nTest: Builds, rustfmt reformats it\nChange-Id: I18e51a0b89c5526cbb4c6656cc0e21052b17d77c\n"
    },
    {
      "commit": "c204f21216c47c7622ec5f7da20782d758e2f389",
      "tree": "6dca9e82084629feac3faa1e38e3974bbf2f1ddd",
      "parents": [
        "a3c4ec349962a4c43ff19505b89082f111ace3b3"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Thu Feb 15 14:45:30 2024 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Feb 16 17:04:08 2024 +0000"
      },
      "message": "[Virt javalib testapi] Feature flag LLPVM_CHANGES\n\nIntroduce FEATURE_LLPVM_CHANGES which corresponds to build time flag\nllpvm_changes. This is populated by calling the rust aidl backend using\nIVirtualizationService.isFeatureEnabled(_)\n\nTest: Builds\nBug: 291213394\nChange-Id: I082cc6d95bc5ac3083e14f96548d8fbecd74418f\n"
    },
    {
      "commit": "c9029437cb42806df65f64efdcde3a27c11e0527",
      "tree": "5c6129c256a6ad096e39d2df7887269a929fbdc6",
      "parents": [
        "025ba5dbe7dffa92e93c2d331118f041490e18ee",
        "e64dd18c08264e5bdc20c2064cef2bbc2798ccb9"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Tue Feb 13 14:46:51 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 13 14:46:51 2024 +0000"
      },
      "message": "Merge \"[test] Add e2e instrumentation test for VM attestation\" into main"
    },
    {
      "commit": "e64dd18c08264e5bdc20c2064cef2bbc2798ccb9",
      "tree": "eb4f87abb134ce363ffe8584c559701b22720e6d",
      "parents": [
        "30908a5bf57306e2705364de93dfd2fb596adebe"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Wed Jan 17 15:57:55 2024 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Mon Feb 12 15:26:38 2024 +0000"
      },
      "message": "[test] Add e2e instrumentation test for VM attestation\n\nThis cl adds an e2e test to check the VM attestation with the\nfollowing steps:\n\n- Provisioning a pair of mock keys in virtualizationservice.\n- Requesting VM attestation from a running VM and tracing this\nstep.\n- Validating the attestation result.\n\nTo facilitate the testing process, two new APIs have been added.\nThe first API allows for the provisioning of mock keys, while the\nsecond API facilitates the request for attestation in testing mode.\n\nThe new test has been added to busytown config at cl/605577401.\n\nBug: 318333789\nTest: atest VmAttestationTestApp\nChange-Id: Icf9d39c704af316f7625cf9d057d255243eca445\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": "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": "fda708420925f0e740a3ac221a5ce14cb6381220",
      "tree": "3dc8e0cdb8d527943e90683c0f062167ea4329e8",
      "parents": [
        "39952078e66f47b270c78f596d9f5625226c3ff2"
      ],
      "author": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Wed Dec 20 17:50:14 2023 +0000"
      },
      "committer": {
        "name": "Alan Stokes",
        "email": "alanstokes@google.com",
        "time": "Thu Feb 01 13:13:47 2024 +0000"
      },
      "message": "Make extra APKs easier to specify\n\nAllow extra APKs to be specified in VirtualMachineAppConfig as an\nalternative to the config file, so the paths don\u0027t need to be fixed.\n\nThis involves adding:\n- the extra_apk_count to the metadata proto, which is persisted in the\n  instance image.\n- the extra APK fds to VirtualMachinePayloadConfig, so it can be\n  included in VirtualMachineAppConfig iff there is no config file.\n\nAnd then a whole lot of plumbing to make it all work.\n\nUsing this requires the USE_CUSTOM_VIRTUAL_MACHINE permission, and is\nbehind the multi-tenant feature flag.\n\nI\u0027ve not attempted to add API yet (this CL is already big), but I have\nextended the vm command to allow it to be exercised.\n\nBug: 303201498\nTest: Start a VM with an extra APK specified on the `vm run-app`\n  command line.\nChange-Id: Ib5da40a33960fd9639b62e8d77e865aeb1f6398b\n"
    },
    {
      "commit": "57da15778ede838674bade9a5f3c7252827eca0d",
      "tree": "273dd1d17dee8af74613a8cfa49c14711d48bd77",
      "parents": [
        "1ec249c4961434e5d10ca4871a4ab6e3f2fa2bd4"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jan 31 10:52:16 2024 +0100"
      },
      "committer": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jan 31 10:53:48 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: I39532792c2efd8a20a25da23004bc335d6c8ad7f\n"
    },
    {
      "commit": "462573826d72c865dea2e550884a9d95ae35b8ff",
      "tree": "608a8b99661c22af6405c6040705eea4dd1eceb0",
      "parents": [
        "8fe86f698d28781c69a32827661c110fedb296c2"
      ],
      "author": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Wed Jan 03 15:41:22 2024 +0900"
      },
      "committer": {
        "name": "Inseob Kim",
        "email": "inseob@google.com",
        "time": "Tue Jan 16 10:43:47 2024 +0900"
      },
      "message": "Add test APIs for Microdroid GKI\n\nAs we\u0027ll run MicrodroidTests on all supported GKIs, this adds test APIs\nto get a list of available OSes and to run a specific microdroid GKI.\nMicrodroidTests will use the API to retrieve a list of available GKIs\nand run tests with such GKIs.\n\nBug: 302465542\nTest: atest MicrodroidTests\nChange-Id: I35bb602975776396445f96154e7be3891580e91d\n"
    },
    {
      "commit": "0c69426d5da2596d5d7a264116db9e4729da0385",
      "tree": "2ec91d034da4ddc06f1333726a78777ddab424bb",
      "parents": [
        "87c157ef089fac07c42faec121d584db06ee65f4",
        "fc5a44ad61598fb1f69dcd6e4917b6e7e421d33d"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Dec 21 15:39:16 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 21 15:39:16 2023 +0000"
      },
      "message": "Merge \"[x509] Use openssl to parse x509 certificate chain\" into main"
    },
    {
      "commit": "fc5a44ad61598fb1f69dcd6e4917b6e7e421d33d",
      "tree": "cee793a2fec8652ca18d68522912514490097bcd",
      "parents": [
        "afcf8ddf40f8f8106720b9136649ff5bdd1fda72"
      ],
      "author": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Dec 21 12:22:40 2023 +0000"
      },
      "committer": {
        "name": "Alice Wang",
        "email": "aliceywang@google.com",
        "time": "Thu Dec 21 12:22:40 2023 +0000"
      },
      "message": "[x509] Use openssl to parse x509 certificate chain\n\nRemoves the usages of x509-parser in virtualizationservice.\n\nTest: atest virtualizationservice_test\nChange-Id: Icf4ac4f54b1980254f74f6f3490afe39b07adb3e\n"
    },
    {
      "commit": "d42aa2cf2c0103a11acf15be34c843d8a0ec6870",
      "tree": "9476de3573ac16ed121563911ccdef1c2db747df",
      "parents": [
        "226e3ea3ef8b26539299dddd7aaff0428b1a0447"
      ],
      "author": {
        "name": "Jakob Vukalovic",
        "email": "jakobvukalovic@google.com",
        "time": "Thu Nov 09 16:04:00 2023 +0000"
      },
      "committer": {
        "name": "Jakob Vukalovic",
        "email": "jakobvukalovic@google.com",
        "time": "Mon Dec 18 17:36:38 2023 +0000"
      },
      "message": "virtualizationservice: Unbind devices on VM exit\n\nWhen configured to assign VFIO devices to a VM, virtualizationmanager\nwill bind them to the VFIO driver before starting the VM. This change\nrebinds the default driver after VM exit, so the devices can be used by\nthe host again.\n\nTest: Assign a device to VM, then check `\u003cdevice_sysfs\u003e/driver` post exit\nBug: 278008519\nChange-Id: I48eee0b0dc1bba40a1c0c543d74f47ec4fee6d78\n"
    },
    {
      "commit": "5d6a67588f79888c2edd4378a235ca6b4697628e",
      "tree": "4188982421cbc1cec41401973ed4ca2a2e0061ea",
      "parents": [
        "9f145f29aa217d89543fd86d7cc8e51d7dd6e071"
      ],
      "author": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Thu Dec 14 22:08:26 2023 +0000"
      },
      "committer": {
        "name": "Shikha Panwar",
        "email": "shikhapanwar@google.com",
        "time": "Fri Dec 15 11:16:52 2023 +0000"
      },
      "message": "Revert^2 \"pVM to use Secretkeeper protected secrets\"\n\n9f145f29aa217d89543fd86d7cc8e51d7dd6e071\n\nThese secrets are to be stored in Secretkeeper which provides\ntamper-evident storage for pVMs.\n\nRegular binder proxy cannot be transferred over RPC binder, so we build\nSecretkeeperProxy service that forwards the rpc binder request from\nwithin pVM to Secretkeeper HAL which is a regular binderized HAL. This\nproxy service is hosted by virtualizationmanager.\n\nNote on supported device: (is_sk_supported() method): Non protected VM\ntrusts the claim, whilst for protected VM, we require authentication\ndata from pvmfw. Support for pVM is not fully done (this doesn\u0027t affect\nsecurity since pvmfw does code_hash check).\n\nIssue with original patch - SecretkeeperProxy did not implement\ndeleteIds \u0026 deleteAll, which were added to aidl few commits back \u0026 hence\npresubmits didn\u0027t catch them.\n\nBug: 291213394\nTest: MicrodroidTests#encryptedStorageIsPersistent\nChange-Id: Ib2cc3d21bd6bd4c8b4e173f32ea680d67fb1d9ac\n"
    },
    {
      "commit": "9f145f29aa217d89543fd86d7cc8e51d7dd6e071",
      "tree": "d436d96a274e1cb5119e560da3d20b6064441fde",
      "parents": [
        "bf3711ef404353d9f75f4e4b0a6cc7364f4e8a9e"
      ],
      "author": {
        "name": "Trevor Black",
        "email": "vantablack@google.com",
        "time": "Thu Dec 14 20:29:33 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 14 20:29:38 2023 +0000"
      },
      "message": "Revert \"pVM to use Secretkeeper protected secrets\"\n\nRevert submission 2705357-sk_vm\n\nReason for revert: DroidMonitor-triggered revert due to breakage https://android-build.corp.google.com/builds/quarterdeck?branch\u003dgit_aosp-main-with-phones\u0026target\u003daosp_oriole-trunk_staging-userdebug\u0026lkgb\u003d11221468\u0026lkbb\u003d11221626\u0026fkbb\u003d11221480\n\nReverted changes: /q/submissionid:2705357-sk_vm\n\nBug: 316391577\nChange-Id: I8ba23154f91edd3bd239b8eb3a1240adbcb452ff\n"
    }
  ],
  "next": "bf3711ef404353d9f75f4e4b0a6cc7364f4e8a9e"
}
