AVF: promote FD->IBinder to SystemApi.

This is needed, dotchya know.

Normally, in the same process, you do all of this, but to
pass a connection to another process, imagine
processes "Q -> R -> S", where:
- Q is client
- R is VM creator
- S is VM

Then Q can call binderFromPreconnectedClient, and it can
implement the provider by calling an API on R which will
return the results of R calling connectVsock.

This way, you can have direct Q<->S communication, instead of two hops.

Bugs: me
Test: TH
Change-Id: If968f18f2c96511fd8359cc68febd01d7dae3833
diff --git a/libs/framework-virtualization/api/system-current.txt b/libs/framework-virtualization/api/system-current.txt
index 233491f..975bafe 100644
--- a/libs/framework-virtualization/api/system-current.txt
+++ b/libs/framework-virtualization/api/system-current.txt
@@ -2,6 +2,7 @@
 package android.system.virtualmachine {
 
   public class VirtualMachine implements java.lang.AutoCloseable {
+    method @NonNull @WorkerThread public static android.os.IBinder binderFromPreconnectedClient(@NonNull android.system.virtualmachine.VirtualMachine.VsockConnectionProvider) throws android.system.virtualmachine.VirtualMachineException;
     method public void clearCallback();
     method @WorkerThread public void close();
     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;
@@ -25,6 +26,10 @@
     field public static final String USE_CUSTOM_VIRTUAL_MACHINE_PERMISSION = "android.permission.USE_CUSTOM_VIRTUAL_MACHINE";
   }
 
+  public static interface VirtualMachine.VsockConnectionProvider {
+    method @NonNull public android.os.ParcelFileDescriptor addConnection() throws android.system.virtualmachine.VirtualMachineException;
+  }
+
   public interface VirtualMachineCallback {
     method public void onError(@NonNull android.system.virtualmachine.VirtualMachine, int, @NonNull String);
     method public void onPayloadFinished(@NonNull android.system.virtualmachine.VirtualMachine, int);