libfdt: Move pack(), unpack(), apply_overlay()

Fix the lifetime of overlay in Fdt::apply_overlay() as there is no need
for it to share the lifetime of the Fdt (only that the reference is
valid during the execution of the function call) and fix the Safety
comment to clarify that overlay always gets corrupted.

Add FFI for fdt_open_into(), fdt_pack(), and fdt_overlay_apply().

Note that Rust does not allow aliasing mutable and const references so,
to properly expose the fdt_open_into() API to clients, provide it
through distinct read-only and read-write functions: Libfdt::open_into()
and LibfdtMut::open_into_self().

Test: m pvmfw
Test: atest liblibfdt.integration_test
Change-Id: Ib95154317fcba22f8ce2f89032f2859ea62e9c6e
2 files changed
tree: fbd86dad2b47a5a62eb486ed2885674a8e46b018
  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. OWNERS
  29. PREUPLOAD.cfg
  30. README.md
  31. rustfmt.toml
  32. 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: