Create avf_v_test_apis aconfig flag and use it in @FlaggedApi

We are using build flags to flag-guard our features (there are multiple
reasons for it, the most simple one is - almost all of our features
add new non-trivial files to /system partition / com.android.virt APEX,
and don't want these additions to be released in a QPR).

Unfortunately, build flags are not supported in @FlaggedApi annotation.
There is a tracking bug to expose build flags as aconfig flags
(b/309090563), but it will take time to implement.

To work around these limitations, and to ensure that our api surface
additions are handled correctly during API finalization, we are adding
this avf_v_test_apis aconfig flag. The whole purpose of this flag is
just to be used in @FlaggedApi, the implementation of the features is
actually guarded by build flags. We also have a
VirtualMachine#isFeatureEnabled @TestApi that is used by CTS test to
ensure that tests are skipped on release configurations that haven't
enabled the feature yet.

Bug: 325441024
Test: m
Change-Id: I28bae128ea764bc91b52824c421a492beb2dc02f
7 files changed
tree: 3f6575926fe3999c13248e6546908a4b673464c4
  1. apex/
  2. apkdmverity/
  3. authfs/
  4. compos/
  5. demo/
  6. demo_native/
  7. docs/
  8. encryptedstore/
  9. javalib/
  10. launcher/
  11. libs/
  12. microdroid/
  13. microdroid_manager/
  14. pvmfw/
  15. rialto/
  16. service_vm/
  17. tests/
  18. virtualizationmanager/
  19. virtualizationservice/
  20. vm/
  21. vm_payload/
  22. vmbase/
  23. vmclient/
  24. zipfuse/
  25. .clang-format
  26. .gitignore
  27. Android.bp
  28. avf_flags.aconfig
  29. OWNERS
  30. PREUPLOAD.cfg
  31. README.md
  32. rustfmt.toml
  33. TEST_MAPPING
README.md

Android Virtualization Framework (AVF)

Android Virtualization Framework (AVF) provides secure and private execution environments for executing code. AVF is ideal for security-oriented use cases that require stronger isolation assurances over those offered by Android’s app sandbox.

Visit our public doc site to learn more about what AVF is, what it is for, and how it is structured. This repository contains source code for userspace components of AVF.

If you want a quick start, see the getting started guideline and follow the steps there.

For in-depth explanations about individual topics and components, visit the following links.

AVF components:

AVF APIs:

How-Tos: