Merge "[xTS] Ensure VM attestation is supported for vendor API >= 202504" into main
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.java b/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.java
index 56ecd96..5321d89 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/PortsStateManager.java
@@ -116,6 +116,18 @@
         notifyPortsStateUpdated(activePorts, activePorts);
     }
 
+    void clearEnabledPorts() {
+        Set<Integer> activePorts;
+        synchronized (mLock) {
+            SharedPreferences.Editor editor = mSharedPref.edit();
+            editor.clear();
+            editor.apply();
+            mEnabledPorts.clear();
+            activePorts = mActivePorts;
+        }
+        notifyPortsStateUpdated(activePorts, activePorts);
+    }
+
     void registerListener(Listener listener) {
         synchronized (mLock) {
             mListeners.add(listener);
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt
index 0d74eb0..a4d43b8 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsRecoveryActivity.kt
@@ -103,6 +103,7 @@
                 image.uninstallAndBackup()
                 backupDone = true
             } else {
+                PortsStateManager.getInstance(this).clearEnabledPorts()
                 image.uninstallFully()
             }
         } catch (e: IOException) {
diff --git a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
index 42c31e3..4a18ee8 100644
--- a/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
+++ b/tests/Terminal/src/com/android/virtualization/terminal/TerminalAppTest.java
@@ -90,6 +90,7 @@
 
     @After
     public void tearDown() throws IOException {
+        PortsStateManager.getInstance(mTargetContext).clearEnabledPorts();
         InstalledImage.getDefault(mTargetContext).uninstallFully();
     }
 }
diff --git a/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java b/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
index 340de72..1762b6d 100644
--- a/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
+++ b/tests/vm_attestation/src/java/com/android/virt/rkpd/vm_attestation/testapp/RkpdVmAttestationTest.java
@@ -26,7 +26,6 @@
 import android.net.NetworkCapabilities;
 import android.system.virtualmachine.VirtualMachine;
 import android.system.virtualmachine.VirtualMachineConfig;
-import android.system.virtualmachine.VirtualMachineManager;
 
 import com.android.microdroid.test.device.MicrodroidDeviceTestBase;
 import com.android.virt.vm_attestation.testservice.IAttestationService.SigningResult;
@@ -86,7 +85,6 @@
         assume().withMessage("RKP Integration tests rely on network availability.")
                 .that(isNetworkConnected(getContext()))
                 .isTrue();
-        assumeFeatureEnabled(VirtualMachineManager.FEATURE_REMOTE_ATTESTATION);
         assume().withMessage("Test needs Remote Attestation support")
                 .that(getVirtualMachineManager().isRemoteAttestationSupported())
                 .isTrue();