Merge "Create avf_v_test_apis aconfig flag and use it in @FlaggedApi" into main
diff --git a/Android.bp b/Android.bp
index 717c902..6e7c3c8 100644
--- a/Android.bp
+++ b/Android.bp
@@ -89,3 +89,19 @@
tools: ["dtc"],
cmd: "FILES=($(in)) && $(location dtc) -I dts -O dtb $${FILES[-1]} -o $(out)",
}
+
+// This is a temporary workaround until b/309090563 is implemented.
+aconfig_declarations {
+ name: "avf_aconfig_flags",
+ package: "com.android.system.virtualmachine.flags",
+ srcs: [
+ "avf_flags.aconfig",
+ ],
+}
+
+java_aconfig_library {
+ name: "avf_aconfig_flags_java",
+ aconfig_declarations: "avf_aconfig_flags",
+ sdk_version: "module_current",
+ apex_available: ["com.android.virt"],
+}
diff --git a/avf_flags.aconfig b/avf_flags.aconfig
new file mode 100644
index 0000000..8abb9ee
--- /dev/null
+++ b/avf_flags.aconfig
@@ -0,0 +1,10 @@
+package: "com.android.system.virtualmachine.flags"
+
+flag {
+ name: "avf_v_test_apis"
+ namespace: "virtualization"
+ description: "Only purpose of this flag is to be used in @FlaggedApi in our V test apis"
+ bug: "325441024"
+ is_fixed_read_only: true
+}
+
diff --git a/javalib/Android.bp b/javalib/Android.bp
index e3cb2e3..a7c531e 100644
--- a/javalib/Android.bp
+++ b/javalib/Android.bp
@@ -33,6 +33,7 @@
srcs: ["src/**/*.java"],
static_libs: [
"android.system.virtualizationservice-java",
+ "avf_aconfig_flags_java",
// For android.sysprop.HypervisorProperties
"PlatformProperties",
],
diff --git a/javalib/api/test-current.txt b/javalib/api/test-current.txt
index 3ea50e2..0a988d8 100644
--- a/javalib/api/test-current.txt
+++ b/javalib/api/test-current.txt
@@ -2,33 +2,33 @@
package android.system.virtualmachine {
public class VirtualMachine implements java.lang.AutoCloseable {
- method @FlaggedApi("RELEASE_AVF_ENABLE_REMOTE_ATTESTATION") @RequiresPermission(android.system.virtualmachine.VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION) public void enableTestAttestation() throws android.system.virtualmachine.VirtualMachineException;
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @RequiresPermission(android.system.virtualmachine.VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION) public void enableTestAttestation() throws android.system.virtualmachine.VirtualMachineException;
method @NonNull @WorkerThread public java.io.OutputStream getConsoleInput() throws android.system.virtualmachine.VirtualMachineException;
method @NonNull public java.io.File getRootDir();
}
public final class VirtualMachineConfig {
- method @FlaggedApi("RELEASE_AVF_ENABLE_MULTI_TENANT_MICRODROID_VM") @NonNull public java.util.List<java.lang.String> getExtraApks();
- method @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES") @Nullable public String getOs();
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @NonNull public java.util.List<java.lang.String> getExtraApks();
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @Nullable public String getOs();
method @Nullable public String getPayloadConfigPath();
method public boolean isVmConsoleInputSupported();
}
public static final class VirtualMachineConfig.Builder {
- method @FlaggedApi("RELEASE_AVF_ENABLE_MULTI_TENANT_MICRODROID_VM") @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder addExtraApk(@NonNull String);
- method @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES") @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setOs(@NonNull String);
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder addExtraApk(@NonNull String);
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setOs(@NonNull String);
method @NonNull @RequiresPermission(android.system.virtualmachine.VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION) public android.system.virtualmachine.VirtualMachineConfig.Builder setPayloadConfigPath(@NonNull String);
- method @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES") @NonNull @RequiresPermission(android.system.virtualmachine.VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION) public android.system.virtualmachine.VirtualMachineConfig.Builder setVendorDiskImage(@NonNull java.io.File);
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @NonNull @RequiresPermission(android.system.virtualmachine.VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION) public android.system.virtualmachine.VirtualMachineConfig.Builder setVendorDiskImage(@NonNull java.io.File);
method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setVmConsoleInputSupported(boolean);
}
public class VirtualMachineManager {
- method @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES") @NonNull public java.util.List<java.lang.String> getSupportedOSList() throws android.system.virtualmachine.VirtualMachineException;
- method @RequiresPermission(android.system.virtualmachine.VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION) public boolean isFeatureEnabled(String) throws android.system.virtualmachine.VirtualMachineException;
- field public static final String FEATURE_DICE_CHANGES = "com.android.kvm.DICE_CHANGES";
- field public static final String FEATURE_MULTI_TENANT = "com.android.kvm.MULTI_TENANT";
- field public static final String FEATURE_REMOTE_ATTESTATION = "com.android.kvm.REMOTE_ATTESTATION";
- field public static final String FEATURE_VENDOR_MODULES = "com.android.kvm.VENDOR_MODULES";
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @NonNull public java.util.List<java.lang.String> getSupportedOSList() throws android.system.virtualmachine.VirtualMachineException;
+ method @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") @RequiresPermission(android.system.virtualmachine.VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION) public boolean isFeatureEnabled(String) throws android.system.virtualmachine.VirtualMachineException;
+ field @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") public static final String FEATURE_DICE_CHANGES = "com.android.kvm.DICE_CHANGES";
+ field @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") public static final String FEATURE_MULTI_TENANT = "com.android.kvm.MULTI_TENANT";
+ field @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") public static final String FEATURE_REMOTE_ATTESTATION = "com.android.kvm.REMOTE_ATTESTATION";
+ field @FlaggedApi("com.android.system.virtualmachine.flags.avf_v_test_apis") public static final String FEATURE_VENDOR_MODULES = "com.android.kvm.VENDOR_MODULES";
}
}
diff --git a/javalib/src/android/system/virtualmachine/VirtualMachine.java b/javalib/src/android/system/virtualmachine/VirtualMachine.java
index b4ba00b..6b03cfe 100644
--- a/javalib/src/android/system/virtualmachine/VirtualMachine.java
+++ b/javalib/src/android/system/virtualmachine/VirtualMachine.java
@@ -76,6 +76,7 @@
import android.util.Log;
import com.android.internal.annotations.GuardedBy;
+import com.android.system.virtualmachine.flags.Flags;
import java.io.File;
import java.io.FileInputStream;
@@ -1215,7 +1216,7 @@
*/
@TestApi
@RequiresPermission(USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION)
- @FlaggedApi("RELEASE_AVF_ENABLE_REMOTE_ATTESTATION")
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
public void enableTestAttestation() throws VirtualMachineException {
try {
mVirtualizationService.getBinder().enableTestAttestation();
diff --git a/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java b/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java
index 9688789..19e663f 100644
--- a/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java
+++ b/javalib/src/android/system/virtualmachine/VirtualMachineConfig.java
@@ -40,6 +40,8 @@
import android.system.virtualizationservice.VirtualMachinePayloadConfig;
import android.util.Log;
+import com.android.system.virtualmachine.flags.Flags;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -376,7 +378,7 @@
* @hide
*/
@TestApi
- @FlaggedApi("RELEASE_AVF_ENABLE_MULTI_TENANT_MICRODROID_VM")
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
@NonNull
public List<String> getExtraApks() {
return mExtraApks;
@@ -502,7 +504,7 @@
* @hide
*/
@TestApi
- @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES")
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
@Nullable
public String getOs() {
return mOs;
@@ -792,7 +794,7 @@
* @hide
*/
@TestApi
- @FlaggedApi("RELEASE_AVF_ENABLE_MULTI_TENANT_MICRODROID_VM")
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
@NonNull
public Builder addExtraApk(@NonNull String packageName) {
mExtraApks.add(requireNonNull(packageName, "extra APK package name must not be null"));
@@ -1003,8 +1005,8 @@
* @hide
*/
@TestApi
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
@RequiresPermission(VirtualMachine.USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION)
- @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES")
@NonNull
public Builder setVendorDiskImage(@NonNull File vendorDiskImage) {
mVendorDiskImage =
@@ -1020,7 +1022,7 @@
* @hide
*/
@TestApi
- @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES")
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
@NonNull
public Builder setOs(@NonNull String os) {
mOs = requireNonNull(os, "os must not be null");
diff --git a/javalib/src/android/system/virtualmachine/VirtualMachineManager.java b/javalib/src/android/system/virtualmachine/VirtualMachineManager.java
index 1a4b53a..f263b32 100644
--- a/javalib/src/android/system/virtualmachine/VirtualMachineManager.java
+++ b/javalib/src/android/system/virtualmachine/VirtualMachineManager.java
@@ -36,6 +36,7 @@
import android.util.ArrayMap;
import com.android.internal.annotations.GuardedBy;
+import com.android.system.virtualmachine.flags.Flags;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -130,6 +131,7 @@
* @hide
*/
@TestApi
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
public static final String FEATURE_DICE_CHANGES = IVirtualizationService.FEATURE_DICE_CHANGES;
/**
@@ -138,6 +140,7 @@
* @hide
*/
@TestApi
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
public static final String FEATURE_MULTI_TENANT = IVirtualizationService.FEATURE_MULTI_TENANT;
/**
@@ -146,6 +149,7 @@
* @hide
*/
@TestApi
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
public static final String FEATURE_REMOTE_ATTESTATION =
IVirtualizationService.FEATURE_REMOTE_ATTESTATION;
@@ -155,6 +159,7 @@
* @hide
*/
@TestApi
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
public static final String FEATURE_VENDOR_MODULES =
IVirtualizationService.FEATURE_VENDOR_MODULES;
@@ -347,7 +352,7 @@
* @hide
*/
@TestApi
- @FlaggedApi("RELEASE_AVF_ENABLE_VENDOR_MODULES")
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
@NonNull
public List<String> getSupportedOSList() throws VirtualMachineException {
synchronized (sCreateLock) {
@@ -366,6 +371,7 @@
* @hide
*/
@TestApi
+ @FlaggedApi(Flags.FLAG_AVF_V_TEST_APIS)
@RequiresPermission(VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION)
public boolean isFeatureEnabled(@Features String featureName) throws VirtualMachineException {
synchronized (sCreateLock) {