Merge "Move CpuTopology to CpuOptions" into main
diff --git a/android/TerminalApp/proguard.flags b/android/TerminalApp/proguard.flags
index 04a2140..e0c49f5 100644
--- a/android/TerminalApp/proguard.flags
+++ b/android/TerminalApp/proguard.flags
@@ -19,10 +19,22 @@
 
 # Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
 # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
--keep class * extends com.google.gson.TypeAdapter
--keep class * implements com.google.gson.TypeAdapterFactory
--keep class * implements com.google.gson.JsonSerializer
--keep class * implements com.google.gson.JsonDeserializer
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep class * extends com.google.gson.TypeAdapter {
+  void <init>();
+}
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep class * implements com.google.gson.TypeAdapterFactory {
+  void <init>();
+}
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep class * implements com.google.gson.JsonSerializer {
+  void <init>();
+}
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep class * implements com.google.gson.JsonDeserializer {
+  void <init>();
+}
 
 # Prevent R8 from leaving Data object members always null
 -keepclassmembers,allowobfuscation class * {
@@ -30,7 +42,13 @@
 }
 
 # Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
--keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
--keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken {
+  void <init>();
+}
+# TODO(b/373579455): Evaluate if <init> needs to be kept.
+-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken {
+  void <init>();
+}
 
 ##---------------End: proguard configuration for Gson  ----------
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 6c01a23..9ba1c04 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -1279,13 +1279,6 @@
         vm_config.teeServices.clone_from(&custom_config.teeServices);
     }
 
-    // Unfortunately specifying page_shift = 14 in bootconfig doesn't enable 16k pages emulation,
-    // so we need to provide it in the kernel cmdline.
-    // TODO(b/376901009): remove this after passing page_shift in bootconfig is supported.
-    if os_name.ends_with("_16k") && cfg!(target_arch = "x86_64") {
-        append_kernel_param("page_shift=14", &mut vm_config);
-    }
-
     if config.memoryMib > 0 {
         vm_config.memoryMib = config.memoryMib;
     }
diff --git a/build/debian/build.sh b/build/debian/build.sh
index d75c3f6..7a93349 100755
--- a/build/debian/build.sh
+++ b/build/debian/build.sh
@@ -162,7 +162,7 @@
 }
 
 download_debian_cloud_image() {
-	local ver=master
+	local ver=38da93fe
 	local prj=debian-cloud-images
 	local url="https://salsa.debian.org/cloud-team/${prj}/-/archive/${ver}/${prj}-${ver}.tar.gz"
 	local outdir="${debian_cloud_image}"
diff --git a/build/debian/kokoro/gcp_ubuntu_docker/aarch64/build.sh b/build/debian/kokoro/gcp_ubuntu_docker/aarch64/build.sh
index 3868d63..43f0338 100644
--- a/build/debian/kokoro/gcp_ubuntu_docker/aarch64/build.sh
+++ b/build/debian/kokoro/gcp_ubuntu_docker/aarch64/build.sh
@@ -2,17 +2,6 @@
 
 set -e
 
-# pyenv set up to use python 3.11
-sudo apt update; sudo apt install --no-install-recommends --assume-yes \
-  build-essential libssl-dev zlib1g-dev \
-  libbz2-dev libreadline-dev libsqlite3-dev curl git \
-  libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
-git clone https://github.com/pyenv/pyenv.git ~/.pyenv
-export PYENV_ROOT="$HOME/.pyenv"
-export PATH="$PYENV_ROOT/bin:$PATH"
-pyenv install 3.11
-pyenv global 3.11
-
 cd "${KOKORO_ARTIFACTS_DIR}/git/avf/build/debian/"
 sudo losetup -D
 grep vmx /proc/cpuinfo || true
diff --git a/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh b/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh
index 1712c24..a935591 100644
--- a/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh
+++ b/build/debian/kokoro/gcp_ubuntu_docker/x86_64/build.sh
@@ -2,17 +2,6 @@
 
 set -e
 
-# pyenv set up to use python 3.11
-sudo apt update; sudo apt install --no-install-recommends --assume-yes \
-  build-essential libssl-dev zlib1g-dev \
-  libbz2-dev libreadline-dev libsqlite3-dev curl git \
-  libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
-git clone https://github.com/pyenv/pyenv.git ~/.pyenv
-export PYENV_ROOT="$HOME/.pyenv"
-export PATH="$PYENV_ROOT/bin:$PATH"
-pyenv install 3.11
-pyenv global 3.11
-
 cd "${KOKORO_ARTIFACTS_DIR}/git/avf/build/debian/"
 sudo losetup -D
 grep vmx /proc/cpuinfo || true
diff --git a/build/microdroid/bootconfig.x86_64_16k b/build/microdroid/bootconfig.x86_64_16k
index ee01de5..964a5fc 100644
--- a/build/microdroid/bootconfig.x86_64_16k
+++ b/build/microdroid/bootconfig.x86_64_16k
@@ -1 +1 @@
-page_shift = 14
+kernel.page_shift = 14
diff --git a/libs/dice/open_dice/Android.bp b/libs/dice/open_dice/Android.bp
index 75f70c3..986f496 100644
--- a/libs/dice/open_dice/Android.bp
+++ b/libs/dice/open_dice/Android.bp
@@ -170,6 +170,7 @@
         "libopen_dice_cbor_bindgen.rust_defaults",
     ],
     whole_static_libs: ["libopen_dice_cbor"],
+    shared_libs: ["libcrypto"],
 }
 
 rust_bindgen {
diff --git a/libs/dice/sample_inputs/rules.mk b/libs/dice/sample_inputs/rules.mk
new file mode 100644
index 0000000..72caf11
--- /dev/null
+++ b/libs/dice/sample_inputs/rules.mk
@@ -0,0 +1,30 @@
+# Copyright (C) 2025 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+LOCAL_DIR := $(GET_LOCAL_DIR)
+
+MODULE := $(LOCAL_DIR)
+
+MODULE_SRCS := $(LOCAL_DIR)/src/lib.rs
+
+MODULE_CRATE_NAME := diced_sample_inputs
+
+MODULE_LIBRARY_DEPS += \
+	$(call FIND_CRATE,coset) \
+	$(call FIND_CRATE,ciborium) \
+	$(call FIND_CRATE,log) \
+	packages/modules/Virtualization/libs/dice/open_dice \
+
+include make/library.mk
diff --git a/libs/libvmbase/src/arch/aarch64/platform.rs b/libs/libvmbase/src/arch/aarch64/platform.rs
index 6a62f8c..b33df68 100644
--- a/libs/libvmbase/src/arch/aarch64/platform.rs
+++ b/libs/libvmbase/src/arch/aarch64/platform.rs
@@ -106,7 +106,7 @@
 ///
 /// Panics if console was not initialized by calling [`init`] first.
 pub fn uart(id: usize) -> &'static spin::mutex::SpinMutex<Uart> {
-    return CONSOLES[id].get().unwrap();
+    CONSOLES[id].get().unwrap()
 }
 
 /// Reinitializes the emergency UART driver and returns it.
diff --git a/tests/pvmfw/Android.bp b/tests/pvmfw/Android.bp
index e124e55..7f5f2af 100644
--- a/tests/pvmfw/Android.bp
+++ b/tests/pvmfw/Android.bp
@@ -45,7 +45,7 @@
     ],
     per_testcase_directory: true,
     data: [
-        "assets/bcc.dat",
+        ":test_avf_bcc_dat",
     ],
     device_common_data: [
         ":MicrodroidTestApp",
@@ -59,3 +59,10 @@
     ],
     data_device_bins_first: ["dtc_static"],
 }
+
+filegroup {
+    name: "test_avf_bcc_dat",
+    srcs: [
+        "assets/bcc.dat",
+    ],
+}