From e58fea5a45586b5a81d6ef8da3bcd132206c3b9b Mon Sep 17 00:00:00 2001 From: Soonil Nagarkar Date: Wed, 16 Jun 2021 15:03:05 -0700 Subject: [PATCH] Add ADAS GNSS bypass functionality ADAS applications on automotive device require a way to access GNSS sensors even when the master location toggle is off, so that they can provide automotive safety services. Bug: 156688086 Test: atest LocationProviderManagerTest Change-Id: I438a781b2202c488da97f7ea732f87403d1068e4 --- core/res/res/values/config.xml | 4 + core/res/res/values/symbols.xml | 1 + .../android/location/ILocationManager.aidl | 3 + .../android/location/LastLocationRequest.java | 60 +++++- .../android/location/LocationManager.java | 63 ++++++ .../android/location/LocationRequest.java | 72 ++++++- .../location/provider/ProviderRequest.java | 53 ++++- .../location/LocationManagerService.java | 187 +++++++++++++++--- .../server/location/LocationShellCommand.java | 70 ++++++- .../location/eventlog/LocationEventLog.java | 52 +++-- .../location/gnss/GnssLocationProvider.java | 4 +- .../server/location/injector/Injector.java | 4 + .../injector/SystemSettingsHelper.java | 2 - .../provider/LocationProviderManager.java | 91 +++++++-- .../location/settings/LocationSettings.java | 173 ++++++++++++++++ .../settings/LocationUserSettings.java | 98 +++++++++ .../location/settings/SettingsStore.java | 166 ++++++++++++++++ .../location/gnss/GnssGeofenceProxyTest.java | 4 +- .../location/injector/FakeAppOpsHelper.java | 7 +- .../location/injector/FakeSettingsHelper.java | 4 +- .../location/injector/TestInjector.java | 13 +- .../provider/LocationProviderManagerTest.java | 110 ++++++++++- ...tionaryThrottlingLocationProviderTest.java | 4 +- .../settings/FakeLocationSettings.java | 54 +++++ .../settings/LocationSettingsTest.java | 171 ++++++++++++++++ 25 files changed, 1378 insertions(+), 92 deletions(-) create mode 100644 services/core/java/com/android/server/location/settings/LocationSettings.java create mode 100644 services/core/java/com/android/server/location/settings/LocationUserSettings.java create mode 100644 services/core/java/com/android/server/location/settings/SettingsStore.java create mode 100644 services/tests/mockingservicestests/src/com/android/server/location/settings/FakeLocationSettings.java create mode 100644 services/tests/mockingservicestests/src/com/android/server/location/settings/LocationSettingsTest.java diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index f4aff9467ceeb..424505a426b6a 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1706,6 +1706,10 @@ config_enableFusedLocationOverlay is false. --> com.android.location.fused + + false +