Add driving safety region support with one time bypassing

- Driving safety regions of app tells which regional
  regulation the app supports.
- App still should have distractionOptimized metadata
  besides driving safety region metadata.
- Apps not supporting the curret system's region will be considered
  as not safe.
- driving safety region can be set from system properties:
  ro.android.car.drivingsafetyregion
- It can be also set through adb shell command for testing purpose but
  it is not allowed for user build.
  $ adb shell cmd car_service set-drivingsafety-region {REGION_NAME}
- Driving safety region is currently only for OEM apps only.
  Other than all region, there is no other standared regions
  defined.
- App should specify its regions using android.car.drivingsafetyregions
  metadata in AndroidManifest.
- Check added DrivingSafetyRegionTest for additional details on the
  expected behavior.

Bug: 193247516

Test: run added api test under userdebug or eng build
      $ atest android.car.apitest.DrivingSafetyRegionTest

Change-Id: I31728ac6cebf25ce93fac0e47a8dadee954e67e2
Merged-In: I31728ac6cebf25ce93fac0e47a8dadee954e67e2
14 files changed
tree: 984a24f3cc53acd97a9b946e8411e5527ecd563d
  1. car-admin-ui-lib/
  2. car-internal-lib/
  3. car-lib/
  4. car-maps-placeholder/
  5. car-systemtest-lib/
  6. car-test-lib/
  7. car-usb-handler/
  8. car_product/
  9. cpp/
  10. data/
  11. experimental/
  12. FrameworkPackageStubs/
  13. obd2-lib/
  14. packages/
  15. procfs-inspector/
  16. service/
  17. tests/
  18. tools/
  19. user/
  20. vehicle-hal-support-lib/
  21. .clang-format
  22. .gitignore
  23. Android.mk
  24. CleanSpec.mk
  25. CPPLINT.cfg
  26. OWNERS
  27. PREUPLOAD.cfg
  28. README.md
  29. TEST_MAPPING
README.md

Native (C++) code format is required to be compatible with .clang-format file. Run

git clang-format --style=file --extension='h,cpp,cc' HEAD~

Note that clang-format is not desirable for Android java files. Therefore the command line above is limited to specific extensions.