• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Signature format: 2.0
2package android.system.virtualmachine {
3
4  public class VirtualMachine implements java.lang.AutoCloseable {
5    method @NonNull @WorkerThread public static android.os.IBinder binderFromPreconnectedClient(@NonNull android.system.virtualmachine.VirtualMachine.VsockConnectionProvider) throws android.system.virtualmachine.VirtualMachineException;
6    method public void clearCallback();
7    method @WorkerThread public void close();
8    method @NonNull @WorkerThread public android.os.IBinder connectToVsockServer(@IntRange(from=android.system.virtualmachine.VirtualMachine.MIN_VSOCK_PORT, to=android.system.virtualmachine.VirtualMachine.MAX_VSOCK_PORT) long) throws android.system.virtualmachine.VirtualMachineException;
9    method @NonNull @WorkerThread public android.os.ParcelFileDescriptor connectVsock(@IntRange(from=android.system.virtualmachine.VirtualMachine.MIN_VSOCK_PORT, to=android.system.virtualmachine.VirtualMachine.MAX_VSOCK_PORT) long) throws android.system.virtualmachine.VirtualMachineException;
10    method @NonNull @WorkerThread public android.system.virtualmachine.VirtualMachineConfig getConfig();
11    method @NonNull @WorkerThread public java.io.InputStream getConsoleOutput() throws android.system.virtualmachine.VirtualMachineException;
12    method @NonNull @WorkerThread public java.io.InputStream getLogOutput() throws android.system.virtualmachine.VirtualMachineException;
13    method @NonNull public String getName();
14    method @WorkerThread public int getStatus();
15    method @RequiresPermission(android.system.virtualmachine.VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION) @WorkerThread public void run() throws android.system.virtualmachine.VirtualMachineException;
16    method public void setCallback(@NonNull java.util.concurrent.Executor, @NonNull android.system.virtualmachine.VirtualMachineCallback);
17    method @NonNull @WorkerThread public android.system.virtualmachine.VirtualMachineConfig setConfig(@NonNull android.system.virtualmachine.VirtualMachineConfig) throws android.system.virtualmachine.VirtualMachineException;
18    method @WorkerThread public void stop() throws android.system.virtualmachine.VirtualMachineException;
19    method @NonNull @WorkerThread public android.system.virtualmachine.VirtualMachineDescriptor toDescriptor() throws android.system.virtualmachine.VirtualMachineException;
20    field public static final String MANAGE_VIRTUAL_MACHINE_PERMISSION = "android.permission.MANAGE_VIRTUAL_MACHINE";
21    field public static final long MAX_VSOCK_PORT = 4294967295L; // 0xffffffffL
22    field public static final long MIN_VSOCK_PORT = 1024L; // 0x400L
23    field public static final int STATUS_DELETED = 2; // 0x2
24    field public static final int STATUS_RUNNING = 1; // 0x1
25    field public static final int STATUS_STOPPED = 0; // 0x0
26    field public static final String USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION = "android.permission.USE_CUSTOM_VIRTUAL_MACHINE";
27  }
28
29  public static interface VirtualMachine.VsockConnectionProvider {
30    method @NonNull public android.os.ParcelFileDescriptor addConnection() throws android.system.virtualmachine.VirtualMachineException;
31  }
32
33  public interface VirtualMachineCallback {
34    method public void onError(@NonNull android.system.virtualmachine.VirtualMachine, int, @NonNull String);
35    method public void onPayloadFinished(@NonNull android.system.virtualmachine.VirtualMachine, int);
36    method public void onPayloadReady(@NonNull android.system.virtualmachine.VirtualMachine);
37    method public void onPayloadStarted(@NonNull android.system.virtualmachine.VirtualMachine);
38    method public void onStopped(@NonNull android.system.virtualmachine.VirtualMachine, int);
39    field public static final int ERROR_PAYLOAD_CHANGED = 2; // 0x2
40    field public static final int ERROR_PAYLOAD_INVALID_CONFIG = 3; // 0x3
41    field public static final int ERROR_PAYLOAD_VERIFICATION_FAILED = 1; // 0x1
42    field public static final int ERROR_UNKNOWN = 0; // 0x0
43    field public static final int STOP_REASON_BOOTLOADER_INSTANCE_IMAGE_CHANGED = 10; // 0xa
44    field public static final int STOP_REASON_BOOTLOADER_PUBLIC_KEY_MISMATCH = 9; // 0x9
45    field public static final int STOP_REASON_CRASH = 6; // 0x6
46    field public static final int STOP_REASON_HANGUP = 16; // 0x10
47    field public static final int STOP_REASON_INFRASTRUCTURE_ERROR = 0; // 0x0
48    field public static final int STOP_REASON_KILLED = 1; // 0x1
49    field public static final int STOP_REASON_MICRODROID_FAILED_TO_CONNECT_TO_VIRTUALIZATION_SERVICE = 11; // 0xb
50    field public static final int STOP_REASON_MICRODROID_INVALID_PAYLOAD_CONFIG = 14; // 0xe
51    field public static final int STOP_REASON_MICRODROID_PAYLOAD_HAS_CHANGED = 12; // 0xc
52    field public static final int STOP_REASON_MICRODROID_PAYLOAD_VERIFICATION_FAILED = 13; // 0xd
53    field public static final int STOP_REASON_MICRODROID_UNKNOWN_RUNTIME_ERROR = 15; // 0xf
54    field public static final int STOP_REASON_PVM_FIRMWARE_INSTANCE_IMAGE_CHANGED = 8; // 0x8
55    field public static final int STOP_REASON_PVM_FIRMWARE_PUBLIC_KEY_MISMATCH = 7; // 0x7
56    field public static final int STOP_REASON_REBOOT = 5; // 0x5
57    field public static final int STOP_REASON_SHUTDOWN = 3; // 0x3
58    field public static final int STOP_REASON_START_FAILED = 4; // 0x4
59    field public static final int STOP_REASON_UNKNOWN = 2; // 0x2
60    field public static final int STOP_REASON_VIRTUALIZATION_SERVICE_DIED = -1; // 0xffffffff
61  }
62
63  public final class VirtualMachineConfig {
64    method @Nullable public String getApkPath();
65    method public int getCpuTopology();
66    method public int getDebugLevel();
67    method @IntRange(from=0) public long getEncryptedStorageBytes();
68    method @IntRange(from=0) public long getMemoryBytes();
69    method @Nullable public String getPayloadBinaryName();
70    method public boolean isCompatibleWith(@NonNull android.system.virtualmachine.VirtualMachineConfig);
71    method public boolean isEncryptedStorageEnabled();
72    method public boolean isProtectedVm();
73    method public boolean isVmOutputCaptured();
74    method @FlaggedApi("com.android.system.virtualmachine.flags.promote_set_should_use_hugepages_to_system_api") public boolean shouldUseHugepages();
75    field public static final int CPU_TOPOLOGY_MATCH_HOST = 1; // 0x1
76    field public static final int CPU_TOPOLOGY_ONE_CPU = 0; // 0x0
77    field public static final int DEBUG_LEVEL_FULL = 1; // 0x1
78    field public static final int DEBUG_LEVEL_NONE = 0; // 0x0
79  }
80
81  public static final class VirtualMachineConfig.Builder {
82    ctor public VirtualMachineConfig.Builder(@NonNull android.content.Context);
83    method @NonNull public android.system.virtualmachine.VirtualMachineConfig build();
84    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setApkPath(@NonNull String);
85    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setCpuTopology(int);
86    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setDebugLevel(int);
87    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setEncryptedStorageBytes(@IntRange(from=1) long);
88    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setMemoryBytes(@IntRange(from=1) long);
89    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setPayloadBinaryName(@NonNull String);
90    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setProtectedVm(boolean);
91    method @FlaggedApi("com.android.system.virtualmachine.flags.promote_set_should_use_hugepages_to_system_api") @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setShouldUseHugepages(boolean);
92    method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setVmOutputCaptured(boolean);
93  }
94
95  public final class VirtualMachineDescriptor implements java.lang.AutoCloseable android.os.Parcelable {
96    method public void close();
97    method public int describeContents();
98    method public void writeToParcel(@NonNull android.os.Parcel, int);
99    field @NonNull public static final android.os.Parcelable.Creator<android.system.virtualmachine.VirtualMachineDescriptor> CREATOR;
100  }
101
102  public class VirtualMachineException extends java.lang.Exception {
103  }
104
105  public class VirtualMachineManager {
106    method @NonNull @RequiresPermission(android.system.virtualmachine.VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION) @WorkerThread public android.system.virtualmachine.VirtualMachine create(@NonNull String, @NonNull android.system.virtualmachine.VirtualMachineConfig) throws android.system.virtualmachine.VirtualMachineException;
107    method @WorkerThread public void delete(@NonNull String) throws android.system.virtualmachine.VirtualMachineException;
108    method @Nullable @WorkerThread public android.system.virtualmachine.VirtualMachine get(@NonNull String) throws android.system.virtualmachine.VirtualMachineException;
109    method public int getCapabilities();
110    method @NonNull @WorkerThread public android.system.virtualmachine.VirtualMachine getOrCreate(@NonNull String, @NonNull android.system.virtualmachine.VirtualMachineConfig) throws android.system.virtualmachine.VirtualMachineException;
111    method @NonNull @WorkerThread public android.system.virtualmachine.VirtualMachine importFromDescriptor(@NonNull String, @NonNull android.system.virtualmachine.VirtualMachineDescriptor) throws android.system.virtualmachine.VirtualMachineException;
112    field public static final int CAPABILITY_NON_PROTECTED_VM = 2; // 0x2
113    field public static final int CAPABILITY_PROTECTED_VM = 1; // 0x1
114  }
115
116}
117
118