Jiyong Park | 9b8253b | 2021-06-28 18:37:26 +0900 | [diff] [blame] | 1 | // Signature format: 2.0 |
Alan Stokes | ca0d27e | 2022-10-03 11:26:13 +0100 | [diff] [blame] | 2 | package android.system.virtualmachine { |
| 3 | |
| 4 | public class VirtualMachine implements java.lang.AutoCloseable { |
| 5 | method public void clearCallback(); |
Alan Stokes | a4e2a4a | 2022-11-28 12:04:39 +0000 | [diff] [blame] | 6 | method public void close(); |
Alan Stokes | ca0d27e | 2022-10-03 11:26:13 +0100 | [diff] [blame] | 7 | method @NonNull public android.os.IBinder connectToVsockServer(int) throws android.system.virtualmachine.VirtualMachineException; |
| 8 | method @NonNull public android.os.ParcelFileDescriptor connectVsock(int) throws android.system.virtualmachine.VirtualMachineException; |
| 9 | method public int getCid() throws android.system.virtualmachine.VirtualMachineException; |
| 10 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig getConfig(); |
| 11 | method @NonNull public java.io.InputStream getConsoleOutput() throws android.system.virtualmachine.VirtualMachineException; |
| 12 | method @NonNull public java.io.InputStream getLogOutput() throws android.system.virtualmachine.VirtualMachineException; |
| 13 | method @NonNull public String getName(); |
| 14 | method public int getStatus(); |
| 15 | method @RequiresPermission(android.system.virtualmachine.VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION) 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 public android.system.virtualmachine.VirtualMachineConfig setConfig(@NonNull android.system.virtualmachine.VirtualMachineConfig) throws android.system.virtualmachine.VirtualMachineException; |
| 18 | method public void stop() throws android.system.virtualmachine.VirtualMachineException; |
| 19 | method @NonNull 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 int STATUS_DELETED = 2; // 0x2 |
| 22 | field public static final int STATUS_RUNNING = 1; // 0x1 |
| 23 | field public static final int STATUS_STOPPED = 0; // 0x0 |
| 24 | field public static final String USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION = "android.permission.USE_CUSTOM_VIRTUAL_MACHINE"; |
| 25 | } |
| 26 | |
| 27 | public interface VirtualMachineCallback { |
| 28 | method public void onError(@NonNull android.system.virtualmachine.VirtualMachine, int, @NonNull String); |
| 29 | method public void onPayloadFinished(@NonNull android.system.virtualmachine.VirtualMachine, int); |
| 30 | method public void onPayloadReady(@NonNull android.system.virtualmachine.VirtualMachine); |
| 31 | method public void onPayloadStarted(@NonNull android.system.virtualmachine.VirtualMachine); |
| 32 | method public void onRamdump(@NonNull android.system.virtualmachine.VirtualMachine, @NonNull android.os.ParcelFileDescriptor); |
| 33 | method public void onStopped(@NonNull android.system.virtualmachine.VirtualMachine, int); |
| 34 | field public static final int ERROR_PAYLOAD_CHANGED = 2; // 0x2 |
| 35 | field public static final int ERROR_PAYLOAD_INVALID_CONFIG = 3; // 0x3 |
| 36 | field public static final int ERROR_PAYLOAD_VERIFICATION_FAILED = 1; // 0x1 |
| 37 | field public static final int ERROR_UNKNOWN = 0; // 0x0 |
| 38 | field public static final int STOP_REASON_BOOTLOADER_INSTANCE_IMAGE_CHANGED = 10; // 0xa |
| 39 | field public static final int STOP_REASON_BOOTLOADER_PUBLIC_KEY_MISMATCH = 9; // 0x9 |
| 40 | field public static final int STOP_REASON_CRASH = 6; // 0x6 |
| 41 | field public static final int STOP_REASON_ERROR = 4; // 0x4 |
| 42 | field public static final int STOP_REASON_HANGUP = 16; // 0x10 |
| 43 | field public static final int STOP_REASON_INFRASTRUCTURE_ERROR = 0; // 0x0 |
| 44 | field public static final int STOP_REASON_KILLED = 1; // 0x1 |
| 45 | field public static final int STOP_REASON_MICRODROID_FAILED_TO_CONNECT_TO_VIRTUALIZATION_SERVICE = 11; // 0xb |
| 46 | field public static final int STOP_REASON_MICRODROID_INVALID_PAYLOAD_CONFIG = 14; // 0xe |
| 47 | field public static final int STOP_REASON_MICRODROID_PAYLOAD_HAS_CHANGED = 12; // 0xc |
| 48 | field public static final int STOP_REASON_MICRODROID_PAYLOAD_VERIFICATION_FAILED = 13; // 0xd |
| 49 | field public static final int STOP_REASON_MICRODROID_UNKNOWN_RUNTIME_ERROR = 15; // 0xf |
| 50 | field public static final int STOP_REASON_PVM_FIRMWARE_INSTANCE_IMAGE_CHANGED = 8; // 0x8 |
| 51 | field public static final int STOP_REASON_PVM_FIRMWARE_PUBLIC_KEY_MISMATCH = 7; // 0x7 |
| 52 | field public static final int STOP_REASON_REBOOT = 5; // 0x5 |
| 53 | field public static final int STOP_REASON_SHUTDOWN = 3; // 0x3 |
| 54 | field public static final int STOP_REASON_UNKNOWN = 2; // 0x2 |
| 55 | field public static final int STOP_REASON_VIRTUALIZATION_SERVICE_DIED = -1; // 0xffffffff |
| 56 | } |
| 57 | |
| 58 | public final class VirtualMachineConfig { |
| 59 | method @NonNull public String getApkPath(); |
| 60 | method @NonNull public int getDebugLevel(); |
| 61 | method @IntRange(from=0) public int getMemoryMib(); |
| 62 | method @IntRange(from=1) public int getNumCpus(); |
| 63 | method @Nullable public String getPayloadBinaryPath(); |
Alan Stokes | ca0d27e | 2022-10-03 11:26:13 +0100 | [diff] [blame] | 64 | method public boolean isCompatibleWith(@NonNull android.system.virtualmachine.VirtualMachineConfig); |
| 65 | method public boolean isProtectedVm(); |
| 66 | field public static final int DEBUG_LEVEL_APP_ONLY = 1; // 0x1 |
| 67 | field public static final int DEBUG_LEVEL_FULL = 2; // 0x2 |
| 68 | field public static final int DEBUG_LEVEL_NONE = 0; // 0x0 |
| 69 | } |
| 70 | |
| 71 | public static final class VirtualMachineConfig.Builder { |
| 72 | ctor public VirtualMachineConfig.Builder(@NonNull android.content.Context); |
| 73 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig build(); |
| 74 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setApkPath(@NonNull String); |
| 75 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setDebugLevel(int); |
| 76 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setMemoryMib(@IntRange(from=0) int); |
| 77 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setNumCpus(@IntRange(from=1) int); |
| 78 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setPayloadBinaryPath(@NonNull String); |
Alan Stokes | ca0d27e | 2022-10-03 11:26:13 +0100 | [diff] [blame] | 79 | method @NonNull public android.system.virtualmachine.VirtualMachineConfig.Builder setProtectedVm(boolean); |
| 80 | } |
| 81 | |
| 82 | public final class VirtualMachineDescriptor implements android.os.Parcelable { |
| 83 | method public int describeContents(); |
| 84 | method public void writeToParcel(@NonNull android.os.Parcel, int); |
| 85 | field @NonNull public static final android.os.Parcelable.Creator<android.system.virtualmachine.VirtualMachineDescriptor> CREATOR; |
| 86 | } |
| 87 | |
| 88 | public class VirtualMachineException extends java.lang.Exception { |
| 89 | ctor public VirtualMachineException(@Nullable String); |
| 90 | ctor public VirtualMachineException(@Nullable String, @Nullable Throwable); |
| 91 | ctor public VirtualMachineException(@Nullable Throwable); |
| 92 | } |
| 93 | |
| 94 | public class VirtualMachineManager { |
| 95 | method @NonNull @RequiresPermission(android.system.virtualmachine.VirtualMachine.MANAGE_VIRTUAL_MACHINE_PERMISSION) public android.system.virtualmachine.VirtualMachine create(@NonNull String, @NonNull android.system.virtualmachine.VirtualMachineConfig) throws android.system.virtualmachine.VirtualMachineException; |
| 96 | method public void delete(@NonNull String) throws android.system.virtualmachine.VirtualMachineException; |
| 97 | method @Nullable public android.system.virtualmachine.VirtualMachine get(@NonNull String) throws android.system.virtualmachine.VirtualMachineException; |
| 98 | method public int getCapabilities(); |
Alan Stokes | ca0d27e | 2022-10-03 11:26:13 +0100 | [diff] [blame] | 99 | method @NonNull public android.system.virtualmachine.VirtualMachine getOrCreate(@NonNull String, @NonNull android.system.virtualmachine.VirtualMachineConfig) throws android.system.virtualmachine.VirtualMachineException; |
| 100 | method @NonNull public android.system.virtualmachine.VirtualMachine importFromDescriptor(@NonNull String, @NonNull android.system.virtualmachine.VirtualMachineDescriptor) throws android.system.virtualmachine.VirtualMachineException; |
| 101 | field public static final int CAPABILITY_NON_PROTECTED_VM = 2; // 0x2 |
| 102 | field public static final int CAPABILITY_PROTECTED_VM = 1; // 0x1 |
| 103 | } |
| 104 | |
| 105 | } |
| 106 | |