Grant legacy storage access to the test apps that request for it

Apps requesting full (legacy) external storage will only be allowed
legacy external storage if the app is targeting Q or lower.

Many CTS test apps (that are not testing storage workflow) are violating
the new Scoped Storage resctrictions (around direct file path access)
added by Android Storage team for R.
Since most of these CTS test apps target sdkcurrent (which is > Q) so
these cts tests will fail as we are enforcing storage restrictions in
R and apps cannot opt out of it.

This change allows legacy external storage for test apps (that request
for it) by giving them File Manager permissions (which have full
external storage access).

Bug: 142395442
Test: atest CtsDownloadManagerLegacy
Test: atest android.appsecurity.cts.ExternalStorageHostTest#testMultiUserStorageIsolated
Test: atest android.os.cts.FileAccessPermissionTest#testExternalStorageAccess
Change-Id: I45d37d3d0d2202e3670eb86519f2ce31d23dd662
2 files changed
tree: 289bd74c8971cf6c3e38142c09acd871b54604f4
  1. atest/
  2. clearcut_client/
  3. common_util/
  4. device_build_interfaces/
  5. global_configuration/
  6. invocation_interfaces/
  7. isolation/
  8. lite/
  9. proto/
  10. python-lib/
  11. remote/
  12. res/
  13. src/
  14. test_framework/
  15. test_result_interfaces/
  16. tests/
  17. util-apps/
  18. .classpath
  19. .gitignore
  20. .project
  21. Android.bp
  22. Android.mk
  23. atest_tradefed.sh
  24. CleanSpec.mk
  25. error_prone_rules.mk
  26. MANIFEST.mf
  27. OWNERS
  28. PREUPLOAD.cfg
  29. pylintrc
  30. README.md
  31. run_tf_cmd.sh
  32. script_help.sh
  33. TEST_MAPPING
  34. tradefed.sh
  35. tradefed_win.bat
README.md

Trade Federation (TF / Tradefed)

TF is a test harness used to drive Android automated testing. It runs on test hosts and monitors the connected devices, handling test scheduling & execution and device management.

Other test harnesses like Compatibility Test Suite (CTS) and Vendor Test Suite (VTS) use TF as a basis and extend it for their particular needs.

Building TF:

  • source build/envsetup.sh
  • tapas tradefed-all
  • make -j8

More information at: https://source.android.com/devices/tech/test_infra/tradefed/

See more details about Tradefed Architecture at: https://source.android.com/devices/tech/test_infra/tradefed/architecture

If you are a tests writer you should start looking in the test_framework/ component which contains everything needed to write a tests in Tradefed.