2023-02-10 17:17:22 -05:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Dmitry Muhomor <muhomor.dmitry@gmail.com>
|
|
|
|
Date: Fri, 10 Feb 2023 12:54:21 +0200
|
|
|
|
Subject: [PATCH] add a setting for forcibly disabling SUPL
|
|
|
|
|
|
|
|
Change-Id: I5c31c319d198f09ace493e601278f8224a259f05
|
|
|
|
---
|
|
|
|
core/java/android/provider/Settings.java | 9 +++++++++
|
|
|
|
.../server/location/gnss/GnssConfiguration.java | 16 ++++++++++++++++
|
|
|
|
.../location/gnss/GnssLocationProvider.java | 15 +++++++++++++++
|
|
|
|
3 files changed, 40 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
|
2023-06-20 18:13:52 -04:00
|
|
|
index 6692d09c17c4..cff4ec23b844 100644
|
2023-02-10 17:17:22 -05:00
|
|
|
--- a/core/java/android/provider/Settings.java
|
|
|
|
+++ b/core/java/android/provider/Settings.java
|
2023-06-20 18:13:52 -04:00
|
|
|
@@ -17369,6 +17369,15 @@ public final class Settings {
|
2023-02-10 17:17:22 -05:00
|
|
|
*/
|
|
|
|
public static final String SETTINGS_REBOOT_AFTER_TIMEOUT = "settings_reboot_after_timeout";
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * Force disable Secure User Plane Location (SUPL), 0 or 1.
|
|
|
|
+ * @hide
|
|
|
|
+ */
|
|
|
|
+ public static final String FORCE_DISABLE_SUPL = "force_disable_supl";
|
|
|
|
+
|
|
|
|
+ /** @hide */
|
|
|
|
+ public static final int FORCE_DISABLE_SUPL_DEFAULT = 0;
|
|
|
|
+
|
|
|
|
/**
|
|
|
|
* The amount of time in milliseconds before a disconnected Wi-Fi adapter is turned off
|
|
|
|
* @hide
|
|
|
|
diff --git a/services/core/java/com/android/server/location/gnss/GnssConfiguration.java b/services/core/java/com/android/server/location/gnss/GnssConfiguration.java
|
|
|
|
index 1435016fc55a..db8131729555 100644
|
|
|
|
--- a/services/core/java/com/android/server/location/gnss/GnssConfiguration.java
|
|
|
|
+++ b/services/core/java/com/android/server/location/gnss/GnssConfiguration.java
|
|
|
|
@@ -19,11 +19,13 @@ package com.android.server.location.gnss;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.os.PersistableBundle;
|
|
|
|
import android.os.SystemProperties;
|
|
|
|
+import android.provider.Settings;
|
|
|
|
import android.telephony.CarrierConfigManager;
|
|
|
|
import android.telephony.SubscriptionManager;
|
|
|
|
import android.telephony.TelephonyManager;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.util.Log;
|
|
|
|
+import android.util.Slog;
|
|
|
|
|
|
|
|
import com.android.internal.util.FrameworkStatsLog;
|
|
|
|
|
|
|
|
@@ -274,6 +276,9 @@ public class GnssConfiguration {
|
|
|
|
* Overlay carrier properties from a debug configuration file.
|
|
|
|
*/
|
|
|
|
loadPropertiesFromGpsDebugConfig(mProperties);
|
|
|
|
+
|
|
|
|
+ applyConfigOverrides(mContext, mProperties);
|
|
|
|
+
|
|
|
|
mEsExtensionSec = getRangeCheckedConfigEsExtensionSec();
|
|
|
|
|
|
|
|
logConfigurations();
|
|
|
|
@@ -476,4 +481,15 @@ public class GnssConfiguration {
|
|
|
|
private static native boolean native_set_satellite_blocklist(int[] constellations, int[] svIds);
|
|
|
|
|
|
|
|
private static native boolean native_set_es_extension_sec(int emergencyExtensionSeconds);
|
|
|
|
+
|
|
|
|
+ private static void applyConfigOverrides(Context ctx, Properties props) {
|
|
|
|
+ String key = Settings.Global.FORCE_DISABLE_SUPL;
|
|
|
|
+ int def = Settings.Global.FORCE_DISABLE_SUPL_DEFAULT;
|
|
|
|
+ if (Settings.Global.getInt(ctx.getContentResolver(), key, def) == 1) {
|
|
|
|
+ props.setProperty(CONFIG_SUPL_MODE, "0");
|
|
|
|
+ Slog.d(TAG, "SUPL is force disabled");
|
|
|
|
+ } else {
|
|
|
|
+ Slog.d(TAG, "SUPL is not force disabled");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
diff --git a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
|
2023-06-12 20:21:48 -04:00
|
|
|
index 3a3504528b97..ed737760779b 100644
|
2023-02-10 17:17:22 -05:00
|
|
|
--- a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
|
|
|
|
+++ b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
|
|
|
|
@@ -100,6 +100,7 @@ import android.telephony.TelephonyManager;
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.text.format.DateUtils;
|
|
|
|
import android.util.Log;
|
|
|
|
+import android.util.Slog;
|
|
|
|
import android.util.TimeUtils;
|
|
|
|
|
|
|
|
import com.android.internal.annotations.GuardedBy;
|
2023-06-12 20:21:48 -04:00
|
|
|
@@ -482,6 +483,20 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
|
2023-02-10 17:17:22 -05:00
|
|
|
mGnssNative.setNotificationCallbacks(this);
|
|
|
|
mGnssNative.setLocationRequestCallbacks(this);
|
|
|
|
mGnssNative.setTimeCallbacks(this);
|
|
|
|
+
|
|
|
|
+ mContext.getContentResolver().registerContentObserver(
|
|
|
|
+ Settings.Global.getUriFor(Settings.Global.FORCE_DISABLE_SUPL),
|
|
|
|
+ false, new ContentObserver(mHandler) {
|
|
|
|
+ @Override
|
|
|
|
+ public void onChange(boolean selfChange) {
|
|
|
|
+ var cr = mContext.getContentResolver();
|
|
|
|
+ String key = Settings.Global.FORCE_DISABLE_SUPL;
|
|
|
|
+ int def = Settings.Global.FORCE_DISABLE_SUPL_DEFAULT;
|
|
|
|
+
|
|
|
|
+ Slog.d(TAG, "FORCE_DISABLE_SUPL changed, value: " + Settings.Global.getInt(cr, key, def));
|
|
|
|
+ mGnssConfiguration.reloadGpsProperties();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
}
|
|
|
|
|
|
|
|
/** Called when system is ready. */
|