Use a wrapper around ANW to allow updating Surface

GpuDisplaySurface are roughly created once per "display in the
guest". Prior to this change, the Surface from the viewer app would
be saved in the AndroidSurface once at initial startup. However,
when the viewer app is moved to the background, the underlying
Surface is destroyed. After this point, the Surface saved in
AndroidSurface is no longer valid. This change updates
AndroidSurface to save a pointer to a ANativeWindowWrapper struct,
which contains the latest Surface, if any, and which can be updated
by DisplayService.

Note: this does not fix the app resuming issue.

Bug: b/334903567
Test: launch ferrochrome,
      move to viewer to background,
      move viewer back to foreground
Change-Id: I647de0a7735280a757e392e878fce86f559d5a74
1 file changed
tree: 00711c93e60e872ca622b45ca3256c48af98d23a
  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: