Add public C API to send request to CompOS

The API allows a client to connect to a CID (assumed privileged, more
below) and disconnect from it. The client can send an opaque byte
array to the "compile" method, which will internall forward the opaque
byte array to someone who could unmarshal (not guaranteed, since the
client may be untrusted).

This API is designed for ART (which is another APEX) to marshal its own
private compilation arugments to execute in the VM.

In a sense, what matters to the service in the API is the file
descriptor lists. It is what compsvc used to set up the "remote FDs".
Other than preparing the FDs, the rest is to execute the actual program.
In this implementation, ART's code is responsible for providing the
command line arguments from the "dexopt context".

Bug: 193668901
Test: atest ComposHostTestCases

Change-Id: I614b03d3d9916a624237b63925e0168e2146b32a
6 files changed
tree: ee0c872038202db36d693d1784bad4f5a19cf39b
  1. apex/
  2. apkdmverity/
  3. apkverify/
  4. authfs/
  5. binder_common/
  6. compos/
  7. demo/
  8. docs/
  9. idsig/
  10. javalib/
  11. launcher/
  12. libs/
  13. microdroid/
  14. microdroid_manager/
  15. pvmfw/
  16. tests/
  17. virtualizationservice/
  18. vm/
  19. vmconfig/
  20. zipfuse/
  21. .clang-format
  22. Android.bp
  23. OWNERS
  24. PREUPLOAD.cfg
  25. README.md
  26. TEST_MAPPING
README.md

Virtualization

This repository contains userspace services related to running virtual machines on Android, especially protected virtual machines. See the getting started documentation and Microdroid README for more information.