diff --git a/Android.bp b/Android.bp
index 47244771a25..93ae0628b45 100644
--- a/Android.bp
+++ b/Android.bp
@@ -55,6 +55,7 @@ android_library {
srcs: [
"src/**/*.java",
"src/**/*.kt",
+ "src/**/*.aidl",
],
exclude_srcs: [
"src/com/android/settings/biometrics/fingerprint2/lib/**/*.kt",
@@ -98,8 +99,10 @@ android_library {
"WindowManager-Shell-shared-desktopMode",
// Settings dependencies
+ "google_battery",
"FingerprintManagerInteractor",
"MediaDrmSettingsFlagsLib",
+ "ReverseWirelessCharging",
"Settings-change-ids",
"SettingsLib",
"SettingsLibActivityEmbedding",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 585c2125164..d3513a93ba3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -150,6 +150,7 @@
+
+
+
+
+
+
+
+
+
+
@@ -656,6 +671,7 @@
@@ -2407,6 +2423,23 @@
android:value="@string/menu_key_safety_center"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3346,6 +3399,12 @@
android:enableOnBackInvokedCallback="false"
android:windowSoftInputMode="stateVisible|adjustResize"/>
+
+
@@ -5770,6 +5830,12 @@
android:value="@string/menu_key_apps"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TODO-16-qpr1 b/TODO-16-qpr1
new file mode 100644
index 00000000000..42e2ca661d5
--- /dev/null
+++ b/TODO-16-qpr1
@@ -0,0 +1,6 @@
+Skipped commits:
+"set distinct UI name for override_desktop_mode_features toggle": not clear if needed
+
+Potential issues:
+Wi-Fi randomization
+"don't send device name" in Wi-Fi settings
diff --git a/res/drawable/baseline_wifi.xml b/res/drawable/baseline_wifi.xml
new file mode 100644
index 00000000000..e8b85e7ced0
--- /dev/null
+++ b/res/drawable/baseline_wifi.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/res/drawable/baseline_wifi_glif.xml b/res/drawable/baseline_wifi_glif.xml
new file mode 100644
index 00000000000..3f12842b089
--- /dev/null
+++ b/res/drawable/baseline_wifi_glif.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/res/drawable/ic_battery_charging_full_google.xml b/res/drawable/ic_battery_charging_full_google.xml
new file mode 100644
index 00000000000..31240e14482
--- /dev/null
+++ b/res/drawable/ic_battery_charging_full_google.xml
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/res/drawable/ic_high_emission_frequency.xml b/res/drawable/ic_high_emission_frequency.xml
new file mode 100644
index 00000000000..adb60134094
--- /dev/null
+++ b/res/drawable/ic_high_emission_frequency.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/drawable/ic_settings_install.xml b/res/drawable/ic_settings_install.xml
index 5bd5e300eae..eefecc242a4 100644
--- a/res/drawable/ic_settings_install.xml
+++ b/res/drawable/ic_settings_install.xml
@@ -18,7 +18,8 @@
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
- android:viewportHeight="24">
+ android:viewportHeight="24"
+ android:tint="?android:attr/colorControlNormal">
diff --git a/res/layout/choose_biometric_second_factor_pin.xml b/res/layout/choose_biometric_second_factor_pin.xml
new file mode 100644
index 00000000000..c2eb13ae537
--- /dev/null
+++ b/res/layout/choose_biometric_second_factor_pin.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/layout/duress_password_setup.xml b/res/layout/duress_password_setup.xml
new file mode 100644
index 00000000000..a708b3fc3e5
--- /dev/null
+++ b/res/layout/duress_password_setup.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/layout/settings_main_prefs.xml b/res/layout/settings_main_prefs.xml
index 48352e2efa0..5111332bfbe 100644
--- a/res/layout/settings_main_prefs.xml
+++ b/res/layout/settings_main_prefs.xml
@@ -34,40 +34,38 @@
android:layout_height="0dp"
android:layout_weight="1"/>
-
-
-
-
-
-
-
+
+
-
+
-
+
+
-
diff --git a/res/layout/wifi_network_config.xml b/res/layout/wifi_network_config.xml
index 990f7599ac9..a76e203cb24 100644
--- a/res/layout/wifi_network_config.xml
+++ b/res/layout/wifi_network_config.xml
@@ -789,7 +789,7 @@
android:id="@+id/privacy_settings"
style="@style/wifi_item_spinner"
android:prompt="@string/wifi_privacy_settings"
- android:entries="@array/wifi_privacy_entries"/>
+ android:entries="@array/wifi_privacy_entries_ext"/>
+
+ 24%
+
diff --git a/res/values-night/bools.xml b/res/values-night/bools.xml
new file mode 100644
index 00000000000..bfdd9cf0334
--- /dev/null
+++ b/res/values-night/bools.xml
@@ -0,0 +1,5 @@
+
+
+ false
+ false
+
diff --git a/res/values-sw600dp-v31/dimens.xml b/res/values-sw600dp-v31/dimens.xml
new file mode 100644
index 00000000000..3542f62dc08
--- /dev/null
+++ b/res/values-sw600dp-v31/dimens.xml
@@ -0,0 +1,9 @@
+
+
+ 24dp
+ 24dp
+ 8dp
+ 20dp
+ 20dp
+ 8dp
+
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index f5615bfbe67..255df2876d9 100755
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -29,6 +29,14 @@
348dp
+
+ 24dp
+ 24dp
+ 8dp
+ 20dp
+ 20dp
+ 8dp
+
104dp448dp
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index f0fe2b5c236..412c235912a 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1112,8 +1112,9 @@
Treat as unmetered
-
- Use randomized MAC
+
+ Use per-connection randomized MAC (default)
+ Use per-network randomized MACUse device MAC
@@ -1133,7 +1134,8 @@
2
-
+
+ 10010
@@ -1655,6 +1657,8 @@
+
+
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index c5cb82de15f..589d7a3d303 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -66,6 +66,8 @@
+
+
diff --git a/res/values/bools.xml b/res/values/bools.xml
new file mode 100644
index 00000000000..d978b71d643
--- /dev/null
+++ b/res/values/bools.xml
@@ -0,0 +1,5 @@
+
+
+ true
+ true
+
diff --git a/res/values/colors.xml b/res/values/colors.xml
index d00bfe4ed10..b73d32b05ae 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -266,6 +266,11 @@
#4DFF00FE#667F00FF
+
+
+ @color/sud_color_accent_glif_v3_light
+
+
#1F1F1F1F
diff --git a/res/values/config.xml b/res/values/config.xml
index 76a9050bdd0..28d7036e7a3 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -524,7 +524,7 @@
false
- content://com.google.android.gms.nearby.fastpair/device_status_list_item
+
@@ -618,7 +618,7 @@
content://com.android.providers.media.documents/root/others_root
- true
+ false16dp
+
+ 44dp
+
32dp
@@ -523,6 +526,16 @@
16dp24dp
+
+
+ @dimen/sud_progress_bar_margin_top_material_you
+
+ 0dp
+ 0dp
+
+ @dimen/sud_footer_bar_button_radius_material_you
+
+
136dp64dp
diff --git a/res/values/fractions.xml b/res/values/fractions.xml
new file mode 100644
index 00000000000..78454226886
--- /dev/null
+++ b/res/values/fractions.xml
@@ -0,0 +1,4 @@
+
+
+ 12%
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ea5dbdff62b..222a96bf0b6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1078,6 +1078,38 @@
Fingerprint setup only takes a minute or two. If you skip this, you can add your fingerprint later in settings.
+
+ Set a second factor PIN
+
+ Re-enter your second factor PIN
+
+ This PIN will be required in addition to your fingerprint when attempting to enter the device from the lockscreen.
+
+
+ Unable to change second factor PIN!
+
+
+ Second factor PIN
+
+ Settings
+
+ Change PIN
+
+ Delete PIN
+
+ Delete second factor PIN?
+
+ It is recommended to always have a second factor PIN when biometric unlock is enabled. Deleting this will make your device less secure.
+
+ Delete
+
+
+ Second factor PIN
+
+ Setup needed
+
+
+
When you see this icon, use your fingerprint for authentication, like when you sign in to apps or approve a purchase
@@ -3292,6 +3324,10 @@
Camera access is required for Face Detection. Tap to manage permissions for Device Personalization ServicesManage permissions
+
+ Increase touch sensitivity
+
+ Improves touch when using screen protectorsNight Light
@@ -3624,6 +3660,8 @@
Baseband version
+ Bootloader version
+
Kernel versionBuild number
@@ -4716,6 +4754,7 @@
EnableClear storage
+ Manage storageUninstall updates
@@ -7870,6 +7909,8 @@
Block connections without VPN
+
+ Note that there are known VPN leaks for secondary profiles if Private DNS is enabledRequire VPN connection?
@@ -12884,6 +12925,8 @@
Preferred network mode: CDMA/EvDo/GSM/WCDMAPreferred network mode: LTE
+
+ Preferred network mode: LTE onlyPreferred network mode: GSM/WCDMA/LTE
@@ -12949,8 +12992,18 @@
4GLTE (recommended)
+
+ LTE only
+
+ 5G only
+
+ 5G or LTE only
+
+ 5G or 4G only4G (recommended)
+
+ 4G only3G
diff --git a/res/values/strings_app_exploit_protection.xml b/res/values/strings_app_exploit_protection.xml
new file mode 100644
index 00000000000..33292064c8e
--- /dev/null
+++ b/res/values/strings_app_exploit_protection.xml
@@ -0,0 +1,106 @@
+
+
+ Exploit protection
+
+ Allowed
+ Blocked
+ Default (%1$s)
+ Disabled
+ Enabled
+ Restricted
+
+ Warning
+ This setting will weaken exploit protections for the selected app.
+ Proceed
+
+ Default value can be changed in the %1$s section
+
+ The selected app is known to be compatible with this setting
+ %1$s by default, because this app is known to need it.
+This behavior can be disabled in the %2$s section.
+
+ %1$s by default because this app depends on Play services
+
+ Block for third-party apps by default
+ Restrict for third-party apps by default
+ Disable for third-party apps by default
+ Restricted by default
+ Restricted by default, except for apps that depend on Play services
+ Disabled by default
+ Blocked by default
+ Allowed for third-party apps by default
+ Enabled for third-party apps by default
+
+ %1$s is enabled
+
+ Exploit protection compatibility mode
+ Improves compatibility by disabling some of the GrapheneOS exploit protections for this app
+
+ Hardened memory allocator
+
+ Hardened memory allocator (hardened_malloc) provides substantial defenses against the most common classes of vulnerabilities (heap memory corruption) along with reducing the lifetime of sensitive data in memory.
+ This app doesn’t have native code
+ This is a 32-bit app, hardened_malloc is 64-bit only
+ hardened_malloc is not allowed to be disabled for a preinstalled app
+ This is a debuggable app, hardened_malloc can’t be disabled
+
+ Extended virtual address space
+ Extends virtual address space from 39 to 48 bits, which significantly improves the address space layout randomization.
+ Incompatible with 32-bit apps
+ Required by hardened_malloc
+
+ Native code debugging
+ Show notifications about blocked access attempts
+
+Native code debugging (ptrace) slightly weakens the app sandbox. Some apps (most notably banking apps) use it as a tampering detection tool.
+
+ Native debugging is always blocked for preinstalled apps
+
+ Memory tagging
+ Show notifications about detected errors
+ Memory tagging provides strong protections against exploitation of heap memory bugs (e.g. use-after-free, buffer overflow).
+ Memory tagging is always enabled for preinstalled apps
+ Memory tagging is always enabled for apps that don’t have native code
+ This app has opted-in to memory tagging
+
+ Enable by default
+
+ This setting doesn’t apply to apps that are known to be compatible with memory tagging
+ "Memory tagging provides strong protections against exploitation of heap memory bugs (e.g. use-after-free, buffer overflow).
+
+Memory tagging is always enabled for preinstalled apps and for third-party apps that are known to be
+compatible with it (e.g. apps that don’t have native code), regardless of this setting."
+ Enabled by default
+
+ Disabled by default, except for apps that are known to be compatible with memory tagging
+
+ Show notifications about blocked DCL attempts
+ This setting doesn’t apply to preinstalled apps, which are always restricted from performing DCL.
+
+ Dynamic code loading via memory
+ DCL via memory
+ DCL via memory is always restricted for this preinstalled app
+
+"Dynamic code loading (DCL) via memory is usually performed by apps that use just-in-time (JIT) compilation to run code from outside their APKs.
+DCL makes the app more vulnerable to exploitation, since the dynamically loaded code can be tampered with or substituted."
+
+
+ Dynamic code loading via storage
+ DCL via storage
+ DCL via storage is always restricted for this preinstalled app
+
+"Dynamic code loading (DCL) via storage refers to the app's ability to run third-party code from files that are not its APKs.
+DCL makes the app more vulnerable to exploitation, since the dynamically loaded code can be tampered with or substituted.
+
+Most apps that depend on Play services require DCL via storage to be allowed."
+
+
+ WebView JIT
+
+"WebView is an OS component that is used for displaying web content inside apps.
+Just-in-time code compilation (JIT) significantly improves the WebView performance, but makes the app more vulnerable to exploitation.
+
+This setting doesn’t apply to preinstalled apps, WebView JIT is always disabled for the vast majority of them."
+
+
+
diff --git a/res/values/strings_ext.xml b/res/values/strings_ext.xml
new file mode 100644
index 00000000000..a1430b72847
--- /dev/null
+++ b/res/values/strings_ext.xml
@@ -0,0 +1,323 @@
+
+
+ Hardware SKU
+ Never
+
+ Enable
+ Enabled
+ Disabled
+
+ Exploit protection
+
+ App exploit protection
+
+ Scramble PIN input layout
+
+ Sandboxed Google Play
+ Sandboxed Google Play (work profile)
+
+ Send notifications to current user
+ Your lock screen notifications will be forwarded to the current user if you are active in the background. Only the user\'s name, the app\'s name, and the time received will be shown.
+
+ Allow Sensors permission to apps by default
+ Sensors is a non-standard permission, apps may malfunction if it’s denied.
+ A permission prompt will be shown when an app tries to access sensors. Note that some apps may need to be manually restarted after allowing the Sensors permission.
+
+ Allow camera access when locked
+
+ Auto reboot
+ Automatically reboot the device if it hasn\'t been unlocked within the selected duration of time.
+
+ Save screenshot timestamp to EXIF
+ Enables adding a timestamp to screenshot EXIF metadata
+
+ Secure User Plane Location (SUPL)
+ A-GNSS (assisted satellite geolocation) based on nearby cell towers.
+
+ GrapheneOS proxy
+ Standard server
+ Off
+ Will make acquiring location lock significantly slower, especially if PSDS is turned off too
+
+ eSIM support
+
+A device restart is required to enable this setting.
+
+ Warning
+
+"Turning off eSIM support will break the following functionality:
+
+• adding new eSIMs
+• turning existing eSIMs on or off
+• removing eSIMs, including from the lock screen (e.g. when eSIM is locked with a forgotten PIN)
+• wiping eSIMs during factory reset
+
+Device will be automatically restarted."
+
+ Restart
+ Proceed
+
+ Attestation key provisioning
+ GrapheneOS proxy
+ Google server
+ Off
+
+ Special access to hardware accelerators for Google apps
+ Access granted
+ Access not granted
+ Grant special access to hardware accelerators to Google apps
+
+"Some Google apps expect to be able to access hardware accelerators in a special, more capable way than regular apps do.
+
+Examples of such apps:
+• Pixel Camera
+• Google Photos
+• Google Recorder
+
+This setting applies to all users on the device."
+
+
+ Predicted Satellite Data Service (PSDS)
+
+"If PSDS is turned on, static PSDS information files will be downloaded periodically to improve location resolution speed and accuracy.
+No query or data is sent to the server. These files contain orbits and statuses of satellites, Earth environmental data and time adjustment information."
+
+ GrapheneOS server
+ Standard server
+ Off
+ Will make acquiring location lock significantly slower, especially if SUPL is turned off too
+
+ Contact Scopes
+
+ Storage Scopes
+
+ GrapheneOS server
+ Standard (Google) server
+ Off
+
+ Internet connectivity checks
+
+"Connectivity check is a special empty server request that is made to find out whether the current network has internet connection.
+There are HTTP, HTTPS, DNS, DNS-over-TLS and DNS-over-HTTPS connectivity checks.
+
+
+ Turn off Wi-Fi automatically
+ If Wi-Fi is disconnected, it will be turned off after the selected timeout.
+
+ Turn off Bluetooth automatically
+
+"If there are no connected devices, Bluetooth will turn off after the selected timeout."
+
+
+ Secure app spawning
+ Use secure app spawning
+ A device restart is required to change this setting.
+ Restart
+ Launch apps in a more secure way than Android which takes slightly longer and increases memory usage by app processes.
+
+ Widevine provisioning
+ GrapheneOS proxy
+ Google server
+ The provisioned certificate will be used for accessing DRM protected content.
+
+
+ App installs and updates
+
+ Enabled
+ Enabled for first party sources
+ Disabled
+
+ Enable app installs and updates
+ Enable app installs and updates from first party sources only
+ Disable app installs and updates
+
+ Allow running in background
+
+ Automatic exploit protection compatibility mode
+
+
+"Allow automatically disabling exploit protections for apps that are known to need it"
+
+
+ "Warning: enabling this setting might cause some apps to stop working.
+
+ Allow access to Android/obb folder
+ Required for installation of some large apps (mostly games) that use OBB expansion files
+
+ Charge other devices by placing them on the back of your phone
+ Battery share
+
+ Notify about system process crashes
+ Such crashes may indicate exploitation attempts
+
+ View logs
+
+ USB-C port
+ Off
+ Turns off the USB-C port.
+ Doesn’t impact the separate charging mode, which is activated by turning off the device and plugging it in to a charger.
+
+ Charging-only
+ Turns off all non-charging USB-C port functionality.
+ Charging-only when locked
+ Enables the charging-only mode when the
+ device is locked and disables it when the device becomes unlocked. If the port is already
+ plugged-in at the time when the device becomes locked, then the activation of charging-only
+ mode will be delayed until the port is disconnected.
+ Charging-only when locked, except before first unlock
+ This mode has the same behavior
+ as the “%1$s” mode, except for an additional exemption for before-first-unlock connections.
+
+ On
+ Does not add any restrictions.
+
+ USB-C port and pogo pins
+ USB-C port off, pogo pins used only for charging
+ Turns off the USB-C port and turns off all
+ non-charging pogo pins functionality. Doesn’t impact the separate charging mode, which is
+ activated by turning off the device and plugging it in to a charger.
+
+ Turns off all non-charging USB-C port and pogo pins functionality.
+ Enables the charging-only mode when the
+ device is locked and disables it when the device becomes unlocked. If the port is already
+ plugged-in at the time when the device becomes locked, then the activation of charging-only
+ mode will be delayed until the port is disconnected. The same behavior applies to pogo pins.
+
+
+ Duress password
+ "Duress password can be entered instead of the user password in any place that asks for it, such as the lock screen of any user and any user or work profile password prompt.
+
+Submitting the duress password will immediately make the storage contents permanently inaccessible, delete all eSIMs and then power off the device. GrapheneOS will remain installed.
+
+Duress PIN works the same way duress password does."
+ Enter duress PIN
+ Confirm duress PIN
+ Enter duress password
+ Confirm duress password
+ Add duress PIN and password
+ Add
+ Added duress PIN and password
+ Updated duress PIN and password
+ Update
+ Cancel
+ Proceed
+ Delete
+ Update duress PIN and password
+ Delete duress PIN and password
+ Delete duress PIN and password?
+ WARNING
+ "Submitting the duress PIN/password instead of the user PIN/password will immediately make the storage contents permanently inaccessible and will delete all eSIMs."
+ Duress PIN and password were not saved.\n\nDetails:\n%1$s
+ Duress PIN and password were not deleted.\n\nDetails:\n%1$s
+ Dismiss
+
+ Alternative touchscreen mode
+ This mode is less susceptible to ghost touches. Don’t enable it unless you are experiencing touchscreen issues.
+ Confirm that the touchscreen is working. Without confirmation, alternative touchscreen mode will be disabled after several seconds.
+ Confirm
+
+ Play Integrity API
+ The Play Integrity API allows services to verify properties of a device through their app. Most services check for the device or strong integrity level which requires having the unmodified stock OS on a device licensing Google Mobile Services. Not every app using it will ban using GrapheneOS. GrapheneOS passes the basic integrity level and the miscellaneous checks for licensing, Play Protect, etc. work fine. We recommend leaving feedback for apps using it to ban GrapheneOS asking them to stop banning using a much more secure OS. Apps can use the standard Android hardware attestation API to verify the hardware, OS and app with GrapheneOS.
+ Contact app developer
+ Show usage notifications
+ Block usage attempts
+
+ Play Integrity API usage attempts will fail with the “API is not available” error code
+
+ Blocked
+ Not blocked
+ Show apps that used the Play Integrity API
+
+ Network location
+
+"Network location is a method of determining your device’s location by using various nearby signals, such as Wi-Fi networks, Bluetooth devices, and cell towers. Your device scans for these signals and sends their identifiers to a server, which then provides positioning data that your device uses to estimate its location. Currently, Wi-Fi networks and cell towers are used.
+
+This method can be particularly useful when GNSS is unavailable or unreliable, such as indoors or in areas with poor satellite reception. Network location provides a quicker way to determine your location before a GNSS lock is acquired or when GNSS signals are weak."
+
+ GrapheneOS Apple proxy
+ Apple server
+ Apple China server (required for China data)
+ Off
+
+ Cross-profile shared clipboard
+ Follow defaults
+ Allow system defaults sharing the clipboard from and to the parent user and its other child profiles.
+ Follow import defaults
+ Allow system defaults sharing the clipboard from the parent user and its other child profiles.
+ Follow export defaults
+ Allow system defaults sharing the clipboard to the parent user and its other child profiles.
+ Disallowed
+ Disallow sharing the clipboard from and to the parent user and its other child profiles.
+ This setting provides an option for users
+ to allow or disallow sharing clipboard to and from other profiles of the same parent user including itself.
+ Once disallowed, future clipboard content updates between user profiles of the same parent user,
+ such as between private space profile and parent user, or between private space profile and work profile,
+ will not be accessible. Clipboard contents shared with other profiles prior to selecting a
+ stricter option remain accessible until clipboard contents have been updated.
+
+
+ End session immediately on lock
+
+ Disallow delayed locking of storage when stopping or locking the current private profile.
+ This allows locking to work like end session to full secondary users
+ where strong authentication is required to unlock the storage.
+
+
+ Geocoder
+
+"Forward and reverse geocoding are processes used to convert between geographic coordinates and human-readable addresses, respectively. Forward geocoding returns the coordinates for a given address, while reverse geocoding returns the address or addresses near a given set of coordinates. Apps can choose to use the geocoder selected here, which performs these lookups using a network-based service."
+
+ GrapheneOS proxy
+ Nominatim server
+ Off
+
+ Carrier settings overrides
+
+Override device carrier settings for this SIM. Choose your overrides first before enabling.
+
+
+These local overrides may reveal hidden IMS options for your SIM, but functionality depends on carrier support and provisioning.
+May cause unreliable service. Use at your own risk.
+
+ Expand
+ Collapse
+ Error
+ Unable to connect to subscription service (%1$s)
+ Cannot enable overrides
+ No overrides are active. All settings are at their defaults.
+ Enable overrides
+ Overrides active
+ Unknown overrides
+ Warning
+ These carrier config overrides are not set from this screen.
+ Disable overrides to make changes
+ Apply carrier config override
+ Clear all carrier config overrides
+ Available
+ Unavailable
+ Unknown
+ Forced available
+ Forced unavailable
+ No override (Default: %1$s)
+ VoLTE / Vo4G availability
+ Depends on carrier provisioning, availability, etc.
+ VoNR / Vo5G availability
+ Depends on carrier provisioning, availability, etc.
+ 5G capabilities
+ Override carrier 5G NR availability for the non-standalone (NSA) and the standalone (SA) modes of 5G NR
+ Force NSA and SA
+ NSA and SA
+ Force NSA
+ NSA
+ Force SA
+ SA
+ Force disabled
+ Disabled
+ Wi-Fi calling availability
+ Depends on carrier provisioning, availability etc. VoLTE / Vo4G should be set to available to use this.
+ Includes Wi-Fi calling while roaming
+ Available but state uneditable
+ Available but roaming not editable
+ Cross SIM calling / backup calling availability
+ Only for dual SIM setups. If enabled, then when the SIM is roaming or out of service and Wi‑Fi isn\’t available, calls can be made over another SIM’s data connection. Wi-Fi calling should be set to available to use this.
+
diff --git a/res/values/strings_google.xml b/res/values/strings_google.xml
new file mode 100644
index 00000000000..5918173804c
--- /dev/null
+++ b/res/values/strings_google.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/values/themes.xml b/res/values/themes.xml
index edba6357348..613085e0e56 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -254,6 +254,10 @@
@color/settingslib_materialColorSurfaceContainerLowest
+
+