Lines Matching refs:is

7 There is more information on AVF [here](../README.md). To see how to package the
8 payload code that is to run inside a VM, and the native API available to it, see
20 privileged apps; in Android 15 it is available to all preinstalled apps. On both
27 The simplest way to detect whether a device has support for AVF is to retrieve
30 class; if the result is not `null` then the device has support. You can then
37 // AVF is not supported.
39 // AVF is supported.
50 An alternative for detecting AVF support is to query support for the
52 work on any API level, and return false if it is below 34:
56 // AVF is supported.
101 Information about the VM, including its configuration, is stored in files in
104 even if the app is restarted or the device is rebooted. Directly inspecting or
105 modifying these files is not recommended.
108 which case the `config` parameter is ignored), or create a new one
111 The `run()` method is asynchronous; it returns successfully once the VM is
112 starting. You can find out when the VM is ready, or if it fails, via your
119 - Whether the VM should be debuggable. A debuggable VM is not secure, but it
122 - How much memory should be available to the VM. (This is an upper bound;
123 typically memory is allocated to the VM as it is needed until the limit is
124 reached - but there is some overhead proportional to the maximum size.)
128 payload. (Normally you don't need this; the APK path is determined from the
133 To find out the progress of the Virtual Machine once it is started you should
137 - `onPayloadStarted()`: The VM payload is about to be run.
138 - `onPayloadReady()`: The VM payload is running and ready to accept
139 connections. (This notification is triggered by the payload code, using the
144 is supplied as a parameter.
147 - `onStopped()`: The VM is no longer running. This is the final notification
149 when you want to. A reason code indicating why the VM stopped is supplied as a
154 - `STATUS_STOPPED`: The VM is not running - either it has not yet been started,
156 - `STATUS_RUNNING`: The VM is running. Your payload inside the VM may not be
161 is irreversible - once a VM is in this state it will never leave it.
165 only be called when the VM status is `STATUS_RUNNING` (e.g. `stop()`), and some
166 can only be called when the it is `STATUS_STOPPED` (e.g. `run()`).
170 Every VM has a 32-byte secret unique to it, which is not available to the
172 doesn’t normally change if the same VM is stopped and started, even after a
175 In Android 14 the secret is derived, using the [Open Profile for
183 - Significant VM configuration options, e.g. whether the VM is debuggable.
185 Any change to any of these will mean a different secret is generated. So while
191 app is updated - then this also changes the identity. An existing VM instance
195 The payload code is not given direct access to the VM secret, but an API is
208 secret, even if it is otherwise identical.
221 The simplest form of communication is using a socket running over the
227 app tries to connect before the VM is listening, necessitating a retry
252 Vsock is useful for simple communication, or transferring of bulk data. For a
257 The use of AIDL interfaces between the VM and app is supported via Binder RPC,
264 There is a payload API to allow an AIDL interface to be served over a specific
300 instance. This is equivalent to turning off the power; the VM gets no
320 The status of a VM will be `STATUS_STOPPED` if your `onStopped()` callback is
332 Inside the VM this storage is mounted at a path that can be retrieved via the
335 data written is persisted and should be available next time the VM is run. (An
336 automatic sync is done when the payload exits normally.)
338 Outside the VM the storage is persisted as a file in the app’s private data
339 directory. The data is encrypted using a key derived from the VM secret, which
340 is not made available outside the VM.
350 It is possible to make a copy of a VM instance. This can be used to transfer a
353 This should only be done while the VM is stopped. The first step is to call
361 A `VirtualMachineDescriptor` is
367 is equivalent to calling `create()` with the same name and configuration, except
368 that the new VM is the same instance as the original, with the same VM secret,