pvmfw: Unify Config::new() calls into a single one

We currently parse the config data twice as a safe way to bypass a bug
in the Rust borrow checker which was causing the 2 mutable borrows of
data to be seen as overlapping (when they don't). However, this causes
unnecessary work and, perhaps more importantly, creates duplicate logs.

Instead, implement the match in the most straightforward way (as
originally desired in aosp/2345203) with a Ok/Err match and avoid the BC
getting confused by carrying data into the "Err" branch by temporarily
removing any ownership information from it (unsafe but clear).

Test: m pvmfw && TH
Change-Id: I170e6b565266df7f0ed43c41ce1f397f089c03bd
1 file changed
tree: e389d2b15ac11538249ebdc7456472d6a2a74195
  1. apex/
  2. apkdmverity/
  3. authfs/
  4. compos/
  5. demo/
  6. demo_native/
  7. docs/
  8. encryptedstore/
  9. flags/
  10. java/
  11. launcher/
  12. libs/
  13. microdroid/
  14. microdroid_manager/
  15. pvmfw/
  16. rialto/
  17. service_vm/
  18. tests/
  19. virtualizationmanager/
  20. virtualizationservice/
  21. vm/
  22. vm_payload/
  23. vmbase/
  24. vmclient/
  25. vmlauncher_app/
  26. zipfuse/
  27. .clang-format
  28. .gitignore
  29. Android.bp
  30. avf_flags.aconfig
  31. OWNERS
  32. PREUPLOAD.cfg
  33. README.md
  34. rustfmt.toml
  35. 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: