diff --git a/Android.bp b/Android.bp
index f56ca95..0307ccb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -89,6 +89,10 @@
         "SettingsLibActivityEmbedding",
         "Settings-change-ids",
         "SystemUIUnfoldLib",
+        "org.lineageos.platform.internal",
+        "LineagePreferenceLib",
+        "vendor.lineage.fastcharge-V1.0-java",
+        "SystemUISharedLib",
     ],
 
     libs: [
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a4d899d..86e7308 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -427,6 +427,18 @@
         </activity>
 
         <activity
+            android:name=".network.NetworkSetupActivity"
+            android:theme="@style/GlifV3Theme.Light"
+            android:exported="true">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.NETWORK_PROVIDER_SETUP" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
+        <activity
             android:name=".wifi.WifiPickerActivity"
             android:permission="android.permission.CHANGE_WIFI_STATE"
             android:exported="true">
@@ -2431,6 +2443,10 @@
             android:label="@string/lockpassword_choose_lock_generic_header"
             android:excludeFromRecents="true" />
 
+        <activity android:name=".password.ChooseLockPatternSize"
+            android:exported="false"
+            android:theme="@style/GlifTheme.Light" />
+
         <activity android:name=".password.SetupChooseLockPattern"
             android:exported="false"
             android:theme="@style/GlifTheme.Light" />
@@ -4545,6 +4561,18 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".backup.transport.TransportActivity"
+                  android:label="@string/backup_transport_title"
+                  android:icon="@drawable/ic_settings_backup"
+                  android:exported="false">
+            <intent-filter>
+                <action android:name="android.intent.action.VIEW" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="settings"
+                      android:host="com.android.settings.backup.transport" />
+            </intent-filter>
+        </activity>
+
         <!-- This is the longest AndroidManifest.xml ever. -->
     </application>
 </manifest>
diff --git a/res/color/audio_icon.xml b/res/color/audio_icon.xml
new file mode 100644
index 0000000..ca93eca
--- /dev/null
+++ b/res/color/audio_icon.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:color="#24000000" />
+    <item android:color="#8a000000" />
+</selector>
diff --git a/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png b/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png
new file mode 100644
index 0000000..f1e5bde
--- /dev/null
+++ b/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png
Binary files differ
diff --git a/res/drawable/ic_launcher_background.xml b/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..8c65155
--- /dev/null
+++ b/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+  <path
+      android:pathData="M0,0h108v108h-108z"
+      android:fillColor="#ffffff"/>
+  <path
+      android:pathData="M58.148,28C59.193,28 60.062,28.805 60.142,29.847L60.254,31.303C60.431,33.606 62.018,35.527 64.017,36.685C66.016,37.844 68.441,38.236 70.525,37.237L71.846,36.604C72.789,36.153 73.92,36.503 74.443,37.408L78.59,44.592C79.113,45.497 78.851,46.652 77.988,47.243L76.782,48.068C74.876,49.374 74,51.689 74,54C74,56.311 74.876,58.626 76.782,59.932L77.988,60.757C78.851,61.348 79.113,62.503 78.59,63.408L74.443,70.592C73.92,71.497 72.789,71.847 71.846,71.396L70.525,70.763C68.441,69.764 66.016,70.156 64.017,71.315C62.018,72.473 60.431,74.394 60.254,76.697L60.142,78.153C60.062,79.195 59.193,80 58.148,80H49.852C48.807,80 47.938,79.195 47.858,78.153L47.746,76.697C47.569,74.394 45.981,72.473 43.983,71.315C41.984,70.156 39.558,69.764 37.475,70.763L36.153,71.396C35.211,71.847 34.08,71.497 33.557,70.592L29.409,63.408C28.887,62.503 29.149,61.348 30.011,60.757L31.218,59.931C33.124,58.626 34,56.311 34,54C34,51.689 33.124,49.374 31.218,48.068L30.011,47.242C29.149,46.652 28.887,45.497 29.409,44.592L33.557,37.408C34.08,36.503 35.211,36.153 36.153,36.604L37.475,37.237C39.558,38.236 41.984,37.844 43.983,36.685C45.982,35.527 47.569,33.606 47.746,31.303L47.858,29.847C47.938,28.805 48.807,28 49.852,28H58.148ZM54,66C60.627,66 66,60.627 66,54C66,47.373 60.627,42 54,42C47.373,42 42,47.373 42,54C42,60.627 47.373,66 54,66Z"
+      android:fillColor="#167C80"
+      android:fillType="evenOdd"/>
+</vector>
diff --git a/res/drawable/ic_launcher_foreground.xml b/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..4d28d39
--- /dev/null
+++ b/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:aapt="http://schemas.android.com/aapt"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+  <group>
+    <clip-path
+        android:pathData="M0,0h108v108h-108z"/>
+    <path
+        android:pathData="M54,54m-18,0a18,18 0,1 1,36 0a18,18 0,1 1,-36 0"
+        android:fillColor="#CAE1E2"/>
+    <path
+        android:pathData="M51.058,56.942L46.634,54.976C45.789,54.6 45.789,53.4 46.634,53.024L51.058,51.058L53.024,46.634C53.4,45.789 54.6,45.789 54.976,46.634L56.942,51.058L61.366,53.024C62.211,53.4 62.211,54.6 61.366,54.976L56.942,56.942L54.976,61.366C54.6,62.211 53.4,62.211 53.024,61.366L51.058,56.942Z"
+        android:fillColor="#2A3232"/>
+    <path
+        android:pathData="M28.54,28.54m-72,0a72,72 0,1 1,144 0a72,72 0,1 1,-144 0"
+        android:fillAlpha="0.6">
+      <aapt:attr name="android:fillColor">
+        <gradient
+            android:gradientRadius="72"
+            android:centerX="28.54"
+            android:centerY="28.54"
+            android:type="radial">
+          <item android:offset="0" android:color="#19FFFFFF"/>
+          <item android:offset="1" android:color="#00FFFFFF"/>
+        </gradient>
+      </aapt:attr>
+    </path>
+  </group>
+</vector>
diff --git a/res/drawable/ic_launcher_monochrome.xml b/res/drawable/ic_launcher_monochrome.xml
new file mode 100644
index 0000000..087d83f
--- /dev/null
+++ b/res/drawable/ic_launcher_monochrome.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="108dp"
+    android:height="108dp"
+    android:viewportWidth="108"
+    android:viewportHeight="108">
+  <path
+      android:pathData="M59.23,33.567C59.162,32.683 58.424,32 57.538,32H50.527C49.64,32 48.903,32.683 48.835,33.567L48.74,34.795C48.59,36.744 47.247,38.369 45.556,39.349C43.865,40.33 41.812,40.661 40.049,39.816L38.936,39.283C38.136,38.899 37.175,39.196 36.732,39.965L33.228,46.034C32.784,46.803 33.007,47.784 33.739,48.286L34.755,48.981C36.368,50.086 37.109,52.045 37.109,54C37.109,55.955 36.368,57.914 34.755,59.019L33.739,59.714C33.007,60.216 32.784,61.197 33.228,61.966L36.732,68.035C37.175,68.803 38.136,69.101 38.936,68.717L40.049,68.184C41.812,67.339 43.865,67.67 45.556,68.651C47.247,69.631 48.59,71.257 48.74,73.205L48.835,74.433C48.903,75.317 49.64,76 50.527,76H57.538C58.424,76 59.162,75.317 59.23,74.433L59.324,73.205C59.474,71.257 60.817,69.631 62.508,68.651C64.199,67.67 66.252,67.339 68.015,68.184L69.128,68.717C69.928,69.101 70.889,68.803 71.332,68.035L74.837,61.966C75.28,61.197 75.058,60.216 74.325,59.714L73.31,59.019C71.696,57.915 70.955,55.955 70.955,54C70.955,52.045 71.696,50.085 73.31,48.981L74.325,48.285C75.058,47.784 75.28,46.803 74.837,46.034L71.332,39.965C70.889,39.196 69.928,38.899 69.128,39.283L68.015,39.816C66.252,40.661 64.199,40.33 62.508,39.349C60.817,38.369 59.474,36.744 59.324,34.795L59.23,33.567ZM68,54C68,61.732 61.732,68 54,68C46.268,68 40,61.732 40,54C40,46.268 46.268,40 54,40C61.732,40 68,46.268 68,54ZM47.799,54.826L51.543,56.489L53.207,60.233C53.525,60.948 54.54,60.948 54.858,60.233L56.522,56.489L60.265,54.826C60.98,54.508 60.98,53.492 60.265,53.174L56.522,51.511L54.858,47.767C54.54,47.052 53.525,47.052 53.207,47.767L51.543,51.511L47.799,53.174C47.084,53.492 47.084,54.508 47.799,54.826Z"
+      android:fillColor="#ffffffff"
+      android:fillType="evenOdd"/>
+</vector>
diff --git a/res/drawable/ic_launcher_settings.xml b/res/drawable/ic_launcher_settings.xml
index 9ede59d..b58c81f 100644
--- a/res/drawable/ic_launcher_settings.xml
+++ b/res/drawable/ic_launcher_settings.xml
@@ -1,5 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+     SPDX-FileCopyrightText: 2022 The LineageOS Project
+     SPDX-License-Identifier: Apache-2.0
+-->
 <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@color/icon_launcher_setting_color"/>
-    <foreground android:drawable="@mipmap/ic_launcher_settings"/>
+    <background android:drawable="@drawable/ic_launcher_background"/>
+    <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+    <monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
 </adaptive-icon>
diff --git a/res/drawable/ic_network_setup.xml b/res/drawable/ic_network_setup.xml
new file mode 100644
index 0000000..4944cbc
--- /dev/null
+++ b/res/drawable/ic_network_setup.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (C) 2021 The LineageOS Project
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+
+    <path
+        android:fillColor="?android:attr/colorPrimary"
+        android:pathData="M12,2A8,8 0 0,0 4,10C4,14.03 7,17.42 11,17.93V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15A1,1 0 0,0 14,19H13V17.93C17,17.43 20,14.03 20,10A8,8 0 0,0 12,2M12,4C12,4 12.74,5.28 13.26,7H10.74C11.26,5.28 12,4 12,4M9.77,4.43C9.5,4.93 9.09,5.84 8.74,7H6.81C7.5,5.84 8.5,4.93 9.77,4.43M14.23,4.44C15.5,4.94 16.5,5.84 17.19,7H15.26C14.91,5.84 14.5,4.93 14.23,4.44M6.09,9H8.32C8.28,9.33 8.25,9.66 8.25,10C8.25,10.34 8.28,10.67 8.32,11H6.09C6.03,10.67 6,10.34 6,10C6,9.66 6.03,9.33 6.09,9M10.32,9H13.68C13.72,9.33 13.75,9.66 13.75,10C13.75,10.34 13.72,10.67 13.68,11H10.32C10.28,10.67 10.25,10.34 10.25,10C10.25,9.66 10.28,9.33 10.32,9M15.68,9H17.91C17.97,9.33 18,9.66 18,10C18,10.34 17.97,10.67 17.91,11H15.68C15.72,10.67 15.75,10.34 15.75,10C15.75,9.66 15.72,9.33 15.68,9M6.81,13H8.74C9.09,14.16 9.5,15.07 9.77,15.56C8.5,15.06 7.5,14.16 6.81,13M10.74,13H13.26C12.74,14.72 12,16 12,16C12,16 11.26,14.72 10.74,13M15.26,13H17.19C16.5,14.16 15.5,15.07 14.23,15.57C14.5,15.07 14.91,14.16 15.26,13Z" />
+</vector>
diff --git a/res/drawable/ic_security_pattern_3x3.xml b/res/drawable/ic_security_pattern_3x3.xml
new file mode 100644
index 0000000..b8e4df4
--- /dev/null
+++ b/res/drawable/ic_security_pattern_3x3.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,11L21,9.5C21,8.67 20.33,8 19.5,8C20.33,8 21,7.33 21,6.5L21,5C21,3.89 20.1,3 19,3L15,3L15,5L19,5L19,7L17,7L17,9L19,9L19,11L15,11L15,13L19,13C20.1,13 21,12.11 21,11ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_4x4.xml b/res/drawable/ic_security_pattern_4x4.xml
new file mode 100644
index 0000000..92c580f
--- /dev/null
+++ b/res/drawable/ic_security_pattern_4x4.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,13L21,3L19,3L19,7L17,7L17,3L15,3L15,9L19,9L19,13L21,13ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_5x5.xml b/res/drawable/ic_security_pattern_5x5.xml
new file mode 100644
index 0000000..7b4daba
--- /dev/null
+++ b/res/drawable/ic_security_pattern_5x5.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,11L21,9C21,7.89 20.1,7 19,7L17,7L17,5L21,5L21,3L15,3L15,9L19,9L19,11L15,11L15,13L19,13C20.1,13 21,12.11 21,11ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_6x6.xml b/res/drawable/ic_security_pattern_6x6.xml
new file mode 100644
index 0000000..1861284
--- /dev/null
+++ b/res/drawable/ic_security_pattern_6x6.xml
@@ -0,0 +1,26 @@
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M17,13L19,13C20.1,13 21,12.11 21,11L21,9C21,7.89 20.1,7 19,7L17,7L17,5L21,5L21,3L17,3C15.9,3 15,3.89 15,5L15,11C15,12.11 15.9,13 17,13L17,13ZM4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM17,9L19,9L19,11L17,11L17,9ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+        android:strokeColor="#00000000"
+        android:fillColor="#777777"
+        android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/quickly_open_camera.xml b/res/drawable/quickly_open_camera.xml
deleted file mode 100644
index dcbf9f4..0000000
--- a/res/drawable/quickly_open_camera.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape>
-</shape>
diff --git a/res/drawable/ring_notif_increasing.xml b/res/drawable/ring_notif_increasing.xml
new file mode 100644
index 0000000..c534e30
--- /dev/null
+++ b/res/drawable/ring_notif_increasing.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The CyanogenMod Project
+     Copyright (C) 2018 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+
+    <path
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M12,22c1.105,0,2-0.898,2-2h-4C10,21.102,10.896,22,12,22Z M18.5,16v-5.5c0-3.075-2.135-5.643-5-6.321V3.5 C13.5,2.67,12.828,2,12,2s-1.5,0.67-1.5,1.5v0.679c-2.865,0.678-5,3.246-5,6.321V16l-2,2v1h17v-1L18.5,16z M16.504,14.558H7.561  V13.25l8.943-3.808V14.558z" />
+</vector>
+
diff --git a/res/layout/battery_usage_graph.xml b/res/layout/battery_usage_graph.xml
index e79c7b9..310d5c7 100644
--- a/res/layout/battery_usage_graph.xml
+++ b/res/layout/battery_usage_graph.xml
@@ -19,7 +19,7 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:paddingTop="16dp"
-    android:paddingStart="@dimen/preference_no_icon_padding_start"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:orientation="vertical">
 
diff --git a/res/layout/crypt_keeper_pattern_sizes.xml b/res/layout/crypt_keeper_pattern_sizes.xml
new file mode 100644
index 0000000..020b688
--- /dev/null
+++ b/res/layout/crypt_keeper_pattern_sizes.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2015 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <Button
+            android:id="@+id/lock_pattern_size_3"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_3"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+    <Button
+            android:id="@+id/lock_pattern_size_4"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_4"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+    <Button
+            android:id="@+id/lock_pattern_size_5"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_5"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+    <Button
+            android:id="@+id/lock_pattern_size_6"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:textSize="14sp"
+            android:fontFamily="sans-serif"
+            android:text="@string/lock_pattern_size_6"
+            android:textColor="@android:color/white"
+            android:layout_weight="1"
+            style="?android:attr/borderlessButtonStyle"/>
+
+
+</merge >
+
diff --git a/res/layout/fingerprint_enroll_find_sensor_base.xml b/res/layout/fingerprint_enroll_find_sensor_base.xml
index 62203f7..6c3f5d6 100644
--- a/res/layout/fingerprint_enroll_find_sensor_base.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_base.xml
@@ -29,11 +29,6 @@
         android:clipToPadding="false"
         android:clipChildren="false">
 
-        <Space
-            android:layout_width="wrap_content"
-            android:layout_height="0dp"
-            android:layout_weight="1" />
-
         <include
             layout="@layout/fingerprint_enroll_find_sensor_graphic"
             android:layout_width="match_parent"
diff --git a/res/layout/fingerprint_enroll_find_sensor_graphic.xml b/res/layout/fingerprint_enroll_find_sensor_graphic.xml
index 0690457..cd9b0a5 100644
--- a/res/layout/fingerprint_enroll_find_sensor_graphic.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_graphic.xml
@@ -17,17 +17,27 @@
 
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="@dimen/fingerprint_find_sensor_graphic_size"
-    android:layout_height="@dimen/fingerprint_find_sensor_graphic_size">
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:paddingTop="@dimen/fingerprint_find_sensor_padding_top">
 
     <ImageView
         android:id="@+id/fingerprint_sensor_location"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_height="wrap_content"
         android:contentDescription="@string/security_settings_fingerprint_enroll_find_sensor_content_description"
         android:src="@drawable/fingerprint_sensor_location"
         android:scaleType="centerInside"/>
 
+    <ImageView
+        android:id="@+id/fingerprint_sensor_location_front_overlay"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:contentDescription="@string/security_settings_fingerprint_enroll_find_sensor_content_description"
+        android:src="@drawable/fingerprint_sensor_location_front_overlay"
+        android:scaleType="centerInside"
+        android:visibility="gone"/>
+
     <com.android.settings.biometrics.fingerprint.FingerprintLocationAnimationView
         android:id="@+id/fingerprint_sensor_location_animation"
         android:layout_width="match_parent"
diff --git a/res/layout/fingerprint_enroll_introduction.xml b/res/layout/fingerprint_enroll_introduction.xml
index 57be78e..ea3cda3 100644
--- a/res/layout/fingerprint_enroll_introduction.xml
+++ b/res/layout/fingerprint_enroll_introduction.xml
@@ -164,6 +164,7 @@
             </LinearLayout>
 
             <LinearLayout
+                android:id="@+id/layout_footer_learn_more"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="horizontal">
diff --git a/res/layout/preference_increasing_ring.xml b/res/layout/preference_increasing_ring.xml
new file mode 100644
index 0000000..11795a2
--- /dev/null
+++ b/res/layout/preference_increasing_ring.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:background="?android:attr/selectableItemBackground"
+    android:clipToPadding="false">
+
+    <LinearLayout
+        android:id="@+id/icon_container"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:minWidth="44dp"
+        android:gravity="start|center_vertical"
+        android:orientation="horizontal"
+        android:paddingEnd="12dp"
+        android:paddingTop="4dp"
+        android:paddingBottom="4dp">
+        <com.android.internal.widget.PreferenceImageView
+            android:id="@android:id/icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:maxWidth="48dp"
+            android:maxHeight="48dp"/>
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingTop="12dp"
+        android:paddingBottom="12dp">
+
+        <TextView android:id="@android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:singleLine="true"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal" />
+
+        <TextView android:id="@+id/start_volume_label"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/title"
+            android:layout_alignStart="@android:id/title"
+            android:paddingStart="18dp"
+            android:text="@string/increasing_ring_min_volume_title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true" />
+
+        <SeekBar android:id="@+id/start_volume"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/start_volume_label"
+            android:layout_alignParentEnd="true"
+            android:max="1000" />
+
+        <TextView android:id="@+id/ramp_up_time_label"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/start_volume"
+            android:layout_alignStart="@android:id/title"
+            android:paddingStart="18dp"
+            android:text="@string/increasing_ring_ramp_up_time_title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true" />
+
+        <TextView android:id="@+id/ramp_up_time_value"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/start_volume"
+            android:layout_toEndOf="@id/ramp_up_time_label"
+            android:layout_alignBaseline="@id/ramp_up_time_label"
+            android:layout_alignParentEnd="true"
+            android:gravity="end"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:singleLine="true" />
+
+        <SeekBar android:id="@+id/ramp_up_time"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/ramp_up_time_label"
+            android:layout_alignParentEnd="true"
+            android:max="11" />
+
+        <TextView android:id="@android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/ramp_up_time"
+            android:layout_alignStart="@android:id/title"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="?android:attr/textColorSecondary"
+            android:maxLines="4" />
+
+    </RelativeLayout>
+
+</LinearLayout>
diff --git a/res/layout/private_dns_mode_dialog.xml b/res/layout/private_dns_mode_dialog.xml
index 12e29e6..7c765d5 100644
--- a/res/layout/private_dns_mode_dialog.xml
+++ b/res/layout/private_dns_mode_dialog.xml
@@ -36,6 +36,10 @@
                 layout="@layout/preference_widget_dialog_radiobutton"/>
 
             <include
+                android:id="@+id/private_dns_mode_cloudflare"
+                layout="@layout/preference_widget_dialog_radiobutton"/>
+
+            <include
                 android:id="@+id/private_dns_mode_opportunistic"
                 layout="@layout/preference_widget_dialog_radiobutton"/>
 
diff --git a/res/layout/settings_main_prefs.xml b/res/layout/settings_main_prefs.xml
index 48352e2..ceb52ee 100644
--- a/res/layout/settings_main_prefs.xml
+++ b/res/layout/settings_main_prefs.xml
@@ -38,35 +38,37 @@
                     android:layout_height="wrap_content"
                     android:layout_width="match_parent"
                     android:layout_weight="0"
-                    android:visibility="gone">
+                    android:visibility="gone"
+                    style="@style/SudGlifButtonBar">
 
         <Button android:id="@+id/back_button"
-                android:layout_width="150dip"
-                android:layout_height="wrap_content"
-                android:layout_margin="5dip"
-                android:layout_alignParentStart="true"
-                android:text="@*android:string/back_button_label"/>
-
-        <LinearLayout
-                android:orientation="horizontal"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentEnd="true">
+                android:layout_alignParentStart="true"
+                android:text="@*android:string/back_button_label"
+                style="@style/SudGlifButton.Secondary"/>
+
+        <RelativeLayout
+                android:orientation="horizontal"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content">
 
             <Button android:id="@+id/skip_button"
-                    android:layout_width="150dip"
+                    android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:layout_margin="5dip"
+                    android:layout_alignParentStart="true"
                     android:text="@*android:string/skip_button_label"
-                    android:visibility="gone"/>
+                    android:visibility="gone"
+                    style="@style/SudGlifButton.Secondary"/>
 
             <Button android:id="@+id/next_button"
-                    android:layout_width="150dip"
+                    android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:layout_margin="5dip"
-                    android:text="@*android:string/next_button_label"/>
+                    android:layout_alignParentEnd="true"
+                    android:text="@*android:string/next_button_label"
+                    style="@style/SudGlifButton.Primary"/>
 
-        </LinearLayout>
+        </RelativeLayout>
 
     </RelativeLayout>
 
diff --git a/res/layout/storage_wizard_init_internal.xml b/res/layout/storage_wizard_init_internal.xml
index 0a18070..9a48283 100644
--- a/res/layout/storage_wizard_init_internal.xml
+++ b/res/layout/storage_wizard_init_internal.xml
@@ -26,6 +26,13 @@
         android:textColor="?android:attr/textColorSecondary"
         android:textSize="18sp"
         android:text="@string/storage_wizard_init_v2_internal_summary" />
+     <TextView
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:layout_marginBottom="32dp"
+         android:textColor="?android:attr/colorError"
+         android:textSize="18sp"
+         android:text="@string/storage_warning_internal" />
      <ImageView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/res/mipmap-hdpi/ic_launcher_settings.png b/res/mipmap-hdpi/ic_launcher_settings.png
deleted file mode 100644
index ddce98e..0000000
--- a/res/mipmap-hdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_settings.png b/res/mipmap-mdpi/ic_launcher_settings.png
deleted file mode 100644
index 86f3be8..0000000
--- a/res/mipmap-mdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_settings.png b/res/mipmap-xhdpi/ic_launcher_settings.png
deleted file mode 100644
index 360aa69..0000000
--- a/res/mipmap-xhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_settings.png b/res/mipmap-xxhdpi/ic_launcher_settings.png
deleted file mode 100644
index 7cb67a9..0000000
--- a/res/mipmap-xxhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher_settings.png b/res/mipmap-xxxhdpi/ic_launcher_settings.png
deleted file mode 100644
index 3fec9c4..0000000
--- a/res/mipmap-xxxhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/raw/lottie_quickly_open_camera.json b/res/raw/lottie_quickly_open_camera.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/lottie_quickly_open_camera.json
diff --git a/res/values-af/cm_strings.xml b/res/values-af/cm_strings.xml
new file mode 100644
index 0000000..83f92a2
--- /dev/null
+++ b/res/values-af/cm_strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS Regs</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Jy is nou <xliff:g id="step_count">%1$d</xliff:g> stap weg van bemagtigende ontwikkelaar opsies.</item>
+        <item quantity="other">Jy is nou <xliff:g id="step_count">%1$d</xliff:g> stappe weg van bemagtigende ontwikkelaar opsies.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Jy het die ontwikkeling opsies geaktiveer!</string>
+    <string name="show_dev_already_cm">Nie nodig, het jy reeds die ontwikkeling opsies geaktiveer.</string>
+    <string name="peak_refresh_rate_summary_custom">Verhoog die herlaaikoers vir sommige inhoud outomaties van 60 na %1$d Hz. Verhoog batterygebruik.</string>
+    <string name="heads_up_notifications_enabled_title">Swewende kennisgewings</string>
+    <string name="heads_up_notifications_enabled_summary">Wys prioriteit kennisgewings in \'n klein swewende venster</string>
+    <string name="high_touch_sensitivity_title">Hoë raak sensitiwiteit</string>
+    <string name="high_touch_sensitivity_summary">Verhoog skerm sensitiwiteit, sodat dit kan gebruik word met die dra van handskoene</string>
+    <string name="increasing_ring_volume_option_title">Toenemende luitoon volume</string>
+    <string name="increasing_ring_min_volume_title">Begin volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Tydsduur</string>
+    <string name="lockscreen_media_art_title">Wys media kuns</string>
+    <string name="lock_settings_picker_pattern_size_message">Kies \'n patroongrootte</string>
+    <string name="lockpattern_settings_enable_error_path_title">Wys patroon fout</string>
+    <string name="lockpattern_settings_enable_dots_title">Wys patroon kolle</string>
+    <string name="app_notification_sound_timeout_title">Minimum tyd tussen kennisgewingklanke</string>
+    <string name="app_notification_sound_timeout_summary_template">Laat geluide of vibrasie nie meer as een keer elke <xliff:g id="duration">%1$s </xliff:g> toe</string>
+    <string name="app_notification_sound_timeout_value_none">Geen beperkings</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekondes</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekondes</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minute</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minute</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minute</string>
+    <string name="unlock_scramble_pin_layout_title">Skommel uitleg</string>
+    <string name="unlock_scramble_pin_layout_summary">Skommel PIN uitleg wanneer die toestel ontsluit word</string>
+    <string name="proximity_wake_title">Voorkom toevallige wakker word</string>
+    <string name="touchscreen_hovering_title">Raakskerm swewing</string>
+    <string name="touchscreen_hovering_summary">Laat toe om bo die skerm te sweef soos \'n muis in web blaaiers, \"remote desktops\", ens</string>
+    <string name="wake_when_plugged_or_unplugged_title">Word wakker op in/uit prop</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Skakel die skerm aan met die koppeling of ontkoppeling van \'n kragbron</string>
+</resources>
diff --git a/res/values-am/cm_strings.xml b/res/values-am/cm_strings.xml
new file mode 100644
index 0000000..3a79691
--- /dev/null
+++ b/res/values-am/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">ለአንዳንድ ይዘት የማደሻ ፍጥነቱን በራስ-ሰር ከ60 ወደ %1$d ኸርዝ ያሳድገዋል። የባትሪ ፍጆታን ይጨምራል።</string>
+</resources>
diff --git a/res/values-ar/cm_strings.xml b/res/values-ar/cm_strings.xml
new file mode 100644
index 0000000..f59ac0b
--- /dev/null
+++ b/res/values-ar/cm_strings.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">الإضافات</string>
+    <string name="advanced_keyboard_settings_title">الإعدادات المتقدمة</string>
+    <string name="adb_enable_root">تصحيح بالروت</string>
+    <string name="adb_enable_summary_root">السماح بتشغيل مصحح أخطاء أندرويد بصلاحية روت</string>
+    <string name="backup_transport_setting_label">تغيير موفر النسخ الاحتياطي</string>
+    <string name="backup_transport_title">حدد موفر النسخ الاحتياطي</string>
+    <string name="berry_black_theme_title">أسود خالص</string>
+    <string name="berry_black_theme_summary">خلفية سوداء خالصة للوضع المظلم</string>
+    <string name="lineagelicense_title">قانون LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="zero">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+        <item quantity="one">أنت الآن على بُعد خطوة واحدة من تمكين خيارات المطور.</item>
+        <item quantity="two">أنت الآن على بُعد خطوتين من تمكين خيارات المطور.</item>
+        <item quantity="few">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوات من تمكين خيارات المطور.</item>
+        <item quantity="many">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+        <item quantity="other">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+    </plurals>
+    <string name="show_dev_on_cm">مكّنتَ خيارات المطور!</string>
+    <string name="show_dev_already_cm">لا داعي، فخيارات المطور مفعّلة.</string>
+    <string name="peak_refresh_rate_summary_custom">تعمل هذه الميزة على رفع معدل إعادة التحميل تلقائيًا من 60 إلى %1$d هرتز لبعض أنواع المحتوى، ما يؤدي إلى زيادة استخدام البطارية.</string>
+    <string name="status_bar_double_tap_to_sleep_title">اضغط للنوم</string>
+    <string name="status_bar_double_tap_to_sleep_summary">الضغط مرتين فوق شريط الحالة لإطفاء الشاشة</string>
+    <string name="heads_up_notifications_enabled_title">الإشعارات العائمة</string>
+    <string name="heads_up_notifications_enabled_summary">عرض الإشعارات ذات الأولوية في إطار عائم صغير</string>
+    <string name="high_touch_sensitivity_title">حساسية ذات لمس عالي</string>
+    <string name="high_touch_sensitivity_summary">زيادة حساسية شاشة اللمس حتى يمكن استخدامها أثناء ارتداء القفازات</string>
+    <string name="tethering_allow_vpn_upstreams_title">السماح للعملاء باستخدام الـ VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">السماح لعملاء نقطة الاتصال باستخدام اتصالات الـVPN لهذا الجهاز\u2019</string>
+    <string name="increasing_ring_volume_option_title">حجم الصوت متزايد</string>
+    <string name="increasing_ring_min_volume_title">حجم الصوت البدئيّ</string>
+    <string name="increasing_ring_ramp_up_time_title">زمن التدرج</string>
+    <string name="lockscreen_media_art_title">عرض الغلاف الفني للوسائط</string>
+    <string name="lock_settings_picker_pattern_size_message">اختر حجم النمط</string>
+    <string name="lockpattern_settings_enable_error_path_title">إظهار خطأ النمط</string>
+    <string name="lockpattern_settings_enable_dots_title">إظهار نقاط النمط</string>
+    <string name="min_refresh_rate_title">معدل تحديث الشاشة الأدنى</string>
+    <string name="show_navbar_hint_title">تلميح عن التنقل</string>
+    <string name="show_navbar_hint_summary">إظهار شريط تنقل التلميح أسفل الشاشة</string>
+    <string name="app_notification_sound_timeout_title">الحد الأدنى من الوقت بين أصوات الإشعار</string>
+    <string name="app_notification_sound_timeout_summary_template">السماح بالصوت أو الاهتزاز ليس لأكثر من مرة واحدة كل <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">لا توجد قيود</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 ثوان</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 ثانية</string>
+    <string name="app_notification_sound_timeout_value_1_minute">دقيقة واحدة</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 دقائق</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 دقائق</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 دقيقة</string>
+    <string name="data_usage_app_restrict_all">السماح بالوصول إلى الشبكة</string>
+    <string name="data_usage_app_restrict_all_summary">تمكين استخدام الشبكة</string>
+    <string name="data_usage_app_restrict_mobile">بيانات الجوال</string>
+    <string name="data_usage_app_restrict_mobile_summary">تمكين استخدام بيانات الجوال</string>
+    <string name="data_usage_app_restrict_vpn">بيانات الـ VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">تمكين استخدام بيانات الـ VPN</string>
+    <string name="data_usage_app_restrict_wifi">بيانات WiFi</string>
+    <string name="data_usage_app_restrict_wifi_summary">تمكين استخدام بيانات WiFi</string>
+    <string name="unlock_scramble_pin_layout_title">تخطيط الترميز</string>
+    <string name="unlock_scramble_pin_layout_summary">تخطيط رقم PIN المرمز عند إلغاء تأمين الجهاز</string>
+    <string name="proximity_wake_title">منع الاستيقاظ العشوائي</string>
+    <string name="proximity_wake_summary">التحقق من مستشعر القرب قبل إيقاظ الشاشة</string>
+    <string name="touchscreen_gesture_settings_title">الإيماءات اللمسية</string>
+    <string name="touchscreen_gesture_settings_summary">عمل إيماءات لمسية متعددة لأعمال سريعة</string>
+    <string name="touchscreen_hovering_title">المرور فوق الشاشة اللمسية</string>
+    <string name="touchscreen_hovering_summary">يسمح لك بالمرور فوق الشاشة مثل الماوس في مستعرضات الويب، أو سطح المكتب عن بُعد، إلخ</string>
+    <string name="wake_when_plugged_or_unplugged_title">الإيقاظ عند التوصيل</string>
+    <string name="wake_when_plugged_or_unplugged_summary">تشغيل الشاشة عند الاتصال أو قطع الاتصال بمصدر الطاقة</string>
+    <string name="fast_charging_title">الشحن السريع</string>
+    <string name="fast_charging_summary">قم بتعطيله لتقليل الحرارة التي ينتجها الجهاز أثناء الشحن أو لتمديد عمر البطارية</string>
+</resources>
diff --git a/res/values-as/cm_strings.xml b/res/values-as/cm_strings.xml
new file mode 100644
index 0000000..fb1ad73
--- /dev/null
+++ b/res/values-as/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS আইনী</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">আপুনি এতিয়া ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰাৰ পৰা <xliff:g id="step_count">%1$d</xliff:g>টা পদক্ষেপ দূৰত আছে।</item>
+        <item quantity="other">আপুনি এতিয়া ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰাৰ পৰা <xliff:g id="step_count">%1$d</xliff:g>টা পদক্ষেপ দূৰত আছে।</item>
+    </plurals>
+    <string name="show_dev_on_cm">আপুনি ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰিলে!</string>
+    <string name="show_dev_already_cm">আৱশ্যক নাই, আপুনি ইতিমধ্যে ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰিলে।</string>
+    <string name="peak_refresh_rate_summary_custom">কিছুমান সমলৰ বাবে ৰিফ্ৰেশ্বৰ হাৰ স্বয়ংক্ৰিয়ভাৱে ৬০ৰ পৰা ৯০হাৰ্টজলৈ বঢ়ায়। বেটাৰীৰ ব্যৱহাৰ বৃদ্ধি কৰে।</string>
+    <string name="high_touch_sensitivity_title">উচ্চ স্পৰ্শ সংবেদনশীলতা</string>
+    <string name="high_touch_sensitivity_summary">টাচ্চস্ক্ৰীণৰ সংবেদনশীলতা বৃদ্ধি কৰক যাতে হাতমোজা পিন্ধি থাকিলেও ইয়াক ব্যৱহাৰ কৰিব পাৰি</string>
+    <string name="increasing_ring_volume_option_title">ৰিং ভলিউম বৃদ্ধি কৰক</string>
+    <string name="increasing_ring_min_volume_title">ৰিং ভলিউম</string>
+    <string name="increasing_ring_ramp_up_time_title">ৰেম্প-আপ সময়</string>
+    <string name="lockpattern_settings_enable_error_path_title">পেটাৰ্ণৰ ত্ৰুটি প্ৰদৰ্শন কৰক</string>
+    <string name="lockpattern_settings_enable_dots_title">পেটাৰ্ণৰ ডটবোৰ প্ৰদৰ্শন কৰক</string>
+    <string name="unlock_scramble_pin_layout_title">স্ক্ৰেম্বল লেআউট</string>
+    <string name="unlock_scramble_pin_layout_summary">ডিভাইচ আনলকিং কৰোতে PIN লেআউট স্ক্ৰেম্বল কৰক</string>
+    <string name="proximity_wake_title">দুৰ্ঘটনাক্ৰমে ৱেক-আপ হোৱাটো প্ৰতিৰোধ কৰক</string>
+    <string name="touchscreen_hovering_title">টাচ্চস্ক্ৰীণ ভাসমান কৰাৰ</string>
+    <string name="touchscreen_hovering_summary">আপোনাক স্ক্ৰীণৰ ওপৰত ৱেব ব্ৰাউজাৰ, ৰিম\'ট ডেস্কটপ আদিৰ দৰে মাউচ ভাসমান কৰাৰ অনুমতি দিয়ে</string>
+    <string name="wake_when_plugged_or_unplugged_title">প্লাগ কৰিলে ৱেক কৰক</string>
+    <string name="wake_when_plugged_or_unplugged_summary">পাৱাৰ উৎসৰ সৈতে সংযোগ কৰিলে বা সংযোগহীন কৰিলে স্ক্ৰীণ অন কৰক</string>
+</resources>
diff --git a/res/values-ast-rES/cm_strings.xml b/res/values-ast-rES/cm_strings.xml
new file mode 100644
index 0000000..4c31868
--- /dev/null
+++ b/res/values-ast-rES/cm_strings.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Configuración adicional</string>
+    <string name="advanced_keyboard_settings_title">Configuración avanzada</string>
+    <string name="adb_enable_root">Depuración como root</string>
+    <string name="adb_enable_summary_root">Permite la execución de la depuración d\'Android como root</string>
+    <string name="berry_black_theme_title">Prietu puro</string>
+    <string name="berry_black_theme_summary">Un fondu en prieto puro pal estilu «Escuridá»</string>
+    <string name="lineagelicense_title">Información llegal de LineageOS</string>
+    <string name="device_info_protected_single_press">Toca equí p\'amosar la información</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Quédate <xliff:g id="step_count">%1$d</xliff:g> toque p\'activar la configuración de desendolcu.</item>
+        <item quantity="other">Quédente <xliff:g id="step_count">%1$d</xliff:g> toques p\'activar la configuración de desendolcu.</item>
+    </plurals>
+    <string name="show_dev_on_cm">¡Activesti les opciones de desendolcu!</string>
+    <string name="show_dev_already_cm">Nun fai falta, la configuración de desendolcu yá tán activaos.</string>
+    <string name="peak_refresh_rate_summary_custom">Incrementa automáticamente la frecuencia d\'anovamientu de 60 a %1$d Hz en dalgún tipu de conteníu. Esta opción aumenta l\'usu de la batería.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocar pa dormir</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Toca dos vegaes na barra d\'estáu o na pantalla de bloquéu p\'apagar la pantalla</string>
+    <string name="high_touch_polling_rate_title">Tasa de rexistru alta de los toques</string>
+    <string name="high_touch_polling_rate_summary">Aumenta la tasa de rexistru de la pantalla táctil</string>
+    <string name="heads_up_notifications_enabled_title">Avisos emerxentes</string>
+    <string name="high_touch_sensitivity_title">Sensibilidá alta al tactu</string>
+    <string name="high_touch_sensitivity_summary">Aumenta la sensibilidá de la pantalla táctil pa que puedas usala mentanto lleves guantes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir que los veceros usen les VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permite que los veceros del puntu Wi-Fi usen les conexones VPN d\u2019esti preséu pa la conectividá</string>
+    <string name="increasing_ring_volume_option_title">Volume creciente del timbre</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="lockscreen_media_art_title">Amosar les portaes de los álbumes</string>
+    <string name="lockpattern_settings_enable_error_path_title">Amosar los patrones incorreutos</string>
+    <string name="lockpattern_settings_enable_dots_title">Amosar los puntos del patrón</string>
+    <string name="max_refresh_rate_title">Tasa d\'anovamientu máxima</string>
+    <string name="min_refresh_rate_title">Tasa d\'anovamientu mínima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Atopa\'l sensor de buelgues na parte d\'alantre de la tableta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Atopa\'l sensor de buelgues na parte d\'alantre del preséu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Atopa\'l sensor de buelgues na parte d\'alantre del teléfonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Atopa\'l sensor de buelgues na parte d\'atrás de la tableta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Atopa\'l sensor de buelgues na parte d\'atrás del preséu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Atopa\'l sensor de buelgues na parte d\'atrás del teléfonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Atopa\'l sensor de buelgues na parte llateral de la tableta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Atopa\'l sensor de buelgues na parte llateral del preséu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Atopa\'l sensor de buelgues na parte llateral del teléfonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toca\'l sensor de la parte d\'alantre de la tableta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toca\'l sensor de la parte d\'alantre del preséu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toca\'l sensor de la parte d\'alantre del teléfonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toca\'l sensor de la parte d\'atrás de la tableta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toca\'l sensor de la parte d\'atrás del preséu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toca\'l sensor de la parte d\'atrás del teléfonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toca\'l sensor de la parte llateral de la tableta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toca\'l sensor de la parte llateral del preséu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toca\'l sensor de la parte llateral del teléfonu.</string>
+    <string name="show_navbar_hint_title">Indicador de navegación</string>
+    <string name="show_navbar_hint_summary">Amuesa una barra indicadora de navegación no baxero de la pantalla</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutu</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="auto_brightness_one_shot_title">Brillu automáticu namás una vegada</string>
+    <string name="auto_brightness_one_shot_summary">L\'axuste del brillu namás se produz nel momentu que la pantalla se prenda</string>
+    <string name="data_usage_app_restrict_all">Permitir l\'accesu a la rede</string>
+    <string name="data_usage_app_restrict_all_summary">Activa l\'usu de la rede</string>
+    <string name="data_usage_app_restrict_mobile">Datos móviles</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activa l\'usu de los datos móviles</string>
+    <string name="data_usage_app_restrict_vpn">Datos per VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activa l\'usu de los datos per VPN</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activa l\'usu de los datos Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Distribución al debalu</string>
+    <string name="unlock_scramble_pin_layout_summary">Alteria la distribución del tecláu del PIN al desbloquiar el preséu</string>
+    <string name="proximity_wake_title">Evitar l\'esconsueñu accidental</string>
+    <string name="proximity_wake_summary">Revisa\'l sensor de proximidá enantes de prender la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Xestos de la pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Permítete facer dellos xestos na pantalla táctil pa executar aiciones rápides</string>
+    <string name="wake_when_plugged_or_unplugged_title">Esconsoñar al espatar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Priende la pantalla al des/espatar el preséu d\'una fonte llétrica</string>
+    <string name="fast_charging_title">Carga rápida</string>
+    <string name="fast_charging_summary">Desactiva esta opción p\'amenorgar la calor producida pol preséu mentanto carga y aumentar la vida útil de la batería</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Ten primíu\'l sensor de buelgues pa desbloquiar el teléfonu</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Ten primíu\'l sensor de buelgues pa desbloquiar la tableta</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Ten primíu\'l sensor de buelgues pa desbloquiar el preséu</string>
+    <string name="ambient_display_screen_off_udfps_summary">Pa esconsoñar la pantalla y desbloquiar el preséu, ten primío sobre\'l sensor de buelgues que ta so la pantalla.</string>
+    <string name="storage_warning_internal">Alvertencia: ¡ye posible qu\'esta opción nun funcione afayadizamente o provoque la perda de datos, y polo tanto, nun s\'aconseya!</string>
+</resources>
diff --git a/res/values-az/cm_strings.xml b/res/values-az/cm_strings.xml
new file mode 100644
index 0000000..fb397b4
--- /dev/null
+++ b/res/values-az/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Əlavələr</string>
+    <string name="advanced_keyboard_settings_title">Qabaqcıl tənzimləmələr</string>
+    <string name="adb_enable_root">Rootlu sazlama</string>
+    <string name="adb_enable_summary_root">Android sazlamanın rootlu olaraq işləməsinə icazə ver</string>
+    <string name="backup_transport_setting_label">Nüsxələmə provayderini dəyişdir</string>
+    <string name="backup_transport_title">Nüsxələmə provayderini seç</string>
+    <string name="berry_black_theme_title">Təmiz qara</string>
+    <string name="berry_black_theme_summary">Tünd tema üçün təmiz qara arxaplan</string>
+    <string name="lineagelicense_title">LineageOS qanuni</string>
+    <string name="device_info_protected_single_press">Məlumatı göstərmək üçün toxunun</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Tərtibatçı tənzimləmələrinin fəallaşdırılmasına <xliff:g id="step_count">%1$d</xliff:g> addım qaldı.</item>
+        <item quantity="other">Tərtibatçı tənzimləmələrinin fəallaşdırılmasına <xliff:g id="step_count">%1$d</xliff:g> addım qaldı.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Tərtibatçı tənzimləmələrini fəallaşdırdınız!</string>
+    <string name="show_dev_already_cm">Artıq tərtibatçı tənzimləmələrini fəallaşdırmısınız.</string>
+    <string name="peak_refresh_rate_summary_custom">Bəzi məzmun üçün yeniləmə dərəcəsini 60 Hs-dən %1$d Hs-ə avtomatik yüksəldir. Batareya istifadəsini artırır.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Yuxlatmaq üçün toxun</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Ekranı söndürmək üçün vəziyyət sətrinə və ya kilid ekranına cüt toxunun</string>
+    <string name="high_touch_polling_rate_title">Yüksək toxunuş yoxlama dərəcəsi</string>
+    <string name="high_touch_polling_rate_summary">Toxunaqlı ekran yoxlama dərəcəsini artırın</string>
+    <string name="heads_up_notifications_enabled_title">Açılan başlıqlar</string>
+    <string name="heads_up_notifications_enabled_summary">Kiçik bir üzən pəncərədə əhəmiyyətli bildirişləri görüntülə</string>
+    <string name="high_touch_sensitivity_title">Yüksək toxunuş həssaslığı</string>
+    <string name="high_touch_sensitivity_summary">Toxunuş həssaslığını artıraraq əlcəklə istifadəni mümkün edər</string>
+    <string name="tethering_allow_vpn_upstreams_title">Müştərilərin VPN istifadəsinə icazə ver</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Hotspot istifadəçilərinin bağlantıları arasında bu cihazın VPN bağlantısını istifadə etməsinə icazə ver</string>
+    <string name="increasing_ring_volume_option_title">Artan zəng səsi</string>
+    <string name="increasing_ring_min_volume_title">Başlanğıc səsi</string>
+    <string name="increasing_ring_ramp_up_time_title">Artma vaxtı</string>
+    <string name="lockscreen_media_art_title">Medianın qapaq üzünü göstər</string>
+    <string name="lock_settings_picker_pattern_size_message">Forma ölçüsünü seçin</string>
+    <string name="lockpattern_settings_enable_error_path_title">Forma xətalarını göstər</string>
+    <string name="lockpattern_settings_enable_dots_title">Forma nöqtələrini göstər</string>
+    <string name="max_refresh_rate_title">Ən yüksək təzələnmə sürəti</string>
+    <string name="min_refresh_rate_title">Minimum təzələmə əmsalı</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Planşetinizin ön tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Cihazınızın ön tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonunuzun ön tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Planşetinizin arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Cihazınızın arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonunuzun arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Planşetinizin yan tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Cihazınızın yan tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonunuzun yan tərəfindəki barmaq izi sensorunu tapın.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Planşetinizin ön tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cihazınızın ön tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Telefonunuzun ön tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Planşetinizin arxa tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cihazınızın arxa tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Telefonunuzun arxa tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Planşetinizin yan tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cihazınızın yan tərəfindəki sensora toxunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Telefonunuzun yan tərəfindəki sensora toxunun.</string>
+    <string name="show_navbar_hint_title">Hərəkət məsləhəti</string>
+    <string name="show_navbar_hint_summary">Ekranın altında hərəkət məsləhət sətrini göstər</string>
+    <string name="app_notification_sound_timeout_title">Bildiriş səsləri arası ən az vaxt</string>
+    <string name="app_notification_sound_timeout_summary_template">Bir dəfədən çox olmayaraq hər <xliff:g id="duration">%1$s</xliff:g> də bir titrəmə və ya səsə icazə ver</string>
+    <string name="app_notification_sound_timeout_value_none">Məhdudiyyət yoxdur</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 saniyə</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 saniyə</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 dəqiqə</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 dəqiqə</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 dəqiqə</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 dəqiqə</string>
+    <string name="auto_brightness_one_shot_title">Tək çəkilişdə avto-parlaqlıq</string>
+    <string name="auto_brightness_one_shot_summary">Parlaqlıq nizamı yalnız ekran açılanda icra edilir</string>
+    <string name="data_usage_app_restrict_all">Şəbəkə müraciətinə icazə ver</string>
+    <string name="data_usage_app_restrict_all_summary">Şəbəkə istifadəsini fəallaşdır</string>
+    <string name="data_usage_app_restrict_mobile">Mobil internet</string>
+    <string name="data_usage_app_restrict_mobile_summary">Mobil internet istifadəsini fəallaşdır</string>
+    <string name="data_usage_app_restrict_vpn">VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN istifadəsini fəallaşdır</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi istifadəsini fəallaşdır</string>
+    <string name="unlock_scramble_pin_layout_title">Düzümü qarışdır</string>
+    <string name="unlock_scramble_pin_layout_summary">Cihaz kilidini açarkən PIN düzümünü qarışdır</string>
+    <string name="proximity_wake_title">Təsadüfi oyanmaların qarşısını al</string>
+    <string name="proximity_wake_summary">Ekranı oyandırmamışdan qabaq yaxınlıq sensorunu yoxlayın</string>
+    <string name="touchscreen_gesture_settings_title">Ekran toxunuş jestləri</string>
+    <string name="touchscreen_gesture_settings_summary">Cəld hərəkətlər üçün cürbəcür toxunaqlı ekran jestlərini həyata keçirin</string>
+    <string name="touchscreen_hovering_title">Toxunuşlu ekranda toxunmadan hərəkət</string>
+    <string name="touchscreen_hovering_summary">Ekrana toxunmadan barmağınızı yaxınlaşdıraraq siçan (maus) kimi veb səyyahlarda, uzaq masaüstlərində və s. hərəkətinizi təmin edər</string>
+    <string name="wake_when_plugged_or_unplugged_title">Taxıb çıxaranda oyan</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Cərəyan mənbəyinə taxarkən və ya çıxararkən bir səs oynat</string>
+    <string name="fast_charging_title">Sürətli enerji yığma</string>
+    <string name="fast_charging_summary">Cihazın enerji yığarkən istehsal etdiyi istiliyi azaltmaq və ya batereyanın ömrünü uzatmaq üçün sıradan çıxardın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Telefonun kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Planşetin kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Cihazın kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_summary">Ekranı oyandırmaq və kilidi açmaq üçün, ekran altındakı barmaq izi sensoruna uzun basın.</string>
+    <string name="storage_warning_internal">Xəbərdarlıq: Bu seçim, düzgün işləməyə və ya məlumat itkisinə səbəb ola bilər, buna görə də tövsiyə edilmir!</string>
+</resources>
diff --git a/res/values-b+sr+Latn/cm_strings.xml b/res/values-b+sr+Latn/cm_strings.xml
new file mode 100644
index 0000000..703ea87
--- /dev/null
+++ b/res/values-b+sr+Latn/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Automatski podiže učestalost osvežavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+</resources>
diff --git a/res/values-be/cm_strings.xml b/res/values-be/cm_strings.xml
new file mode 100644
index 0000000..b82aacf
--- /dev/null
+++ b/res/values-be/cm_strings.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Дадаткі</string>
+    <string name="backup_transport_setting_label">Змяніць пастаўшчыка рэзервовага капіявання</string>
+    <string name="lineagelicense_title">Палітыка прыватнасці LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Застаўся <xliff:g id="step_count">%1$d</xliff:g> крок, каб уключыць налады для распрацоўшчыка.</item>
+        <item quantity="few">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокі, каб уключыць налады для распрацоўшчыка.</item>
+        <item quantity="many">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокаў, каб уключыць налады для распрацоўшчыка.</item>
+        <item quantity="other">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокаў, каб уключыць налады для распрацоўшчыка.</item>
+    </plurals>
+    <string name="status_bar_double_tap_to_sleep_summary">Двойчы націсніце на панэль стану або экран блакіроўкі, каб перавесці прыладу ў рэжым сну</string>
+    <string name="heads_up_notifications_enabled_summary">Паказваць прыярытэтныя апавяшчэнні з дапамогай невялікіх усплывальных вокнаў</string>
+    <string name="increasing_ring_min_volume_title">Пачатковая гучнасць</string>
+    <string name="increasing_ring_ramp_up_time_title">Час павелічэння</string>
+    <string name="lockscreen_media_art_title">Паказваць вокладку мультымедыя</string>
+    <string name="lock_settings_picker_pattern_size_message">Выберыце памер графічнага ключа</string>
+    <string name="lockpattern_settings_enable_error_path_title">Паказваць няправільны ўвод</string>
+    <string name="lockpattern_settings_enable_dots_title">Паказваць кропкі</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунд</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 хвіліна</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 хвілін</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 хвілін</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 хвілін</string>
+    <string name="unlock_scramble_pin_layout_title">Змешваць кнопкі</string>
+    <string name="unlock_scramble_pin_layout_summary">Перастаўляць кнопкі ўводу PIN-кода ў выпадковым парадку</string>
+    <string name="proximity_wake_title">Прадухіляць выпадковае ўключэнне</string>
+    <string name="touchscreen_hovering_title">Навядзенне пальца</string>
+    <string name="touchscreen_hovering_summary">Дазваляе распазнаваць набліжэнне пальца да экрана для падзей навядзення курсора ў браўзеры або іншых праграмах</string>
+    <string name="fast_charging_summary">Адключыць, каб паменшыць нагрэў прылады падчас зарадкі або падоўжыць тэрмін службы акумулятара</string>
+</resources>
diff --git a/res/values-bg/cm_strings.xml b/res/values-bg/cm_strings.xml
new file mode 100644
index 0000000..7cc2d29
--- /dev/null
+++ b/res/values-bg/cm_strings.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Екстри</string>
+    <string name="advanced_keyboard_settings_title">Разширени настройки</string>
+    <string name="adb_enable_root">Отстраняване на грешки с достъп на съперползвател (root)</string>
+    <string name="adb_enable_summary_root">Разрешете отстраняване на грешки в Android с права на суперпотребител</string>
+    <string name="backup_transport_setting_label">Промяна на доставчика на резервни копия</string>
+    <string name="backup_transport_title">Изберете доставчик на резервни копия</string>
+    <string name="berry_black_theme_title">Натурално черно</string>
+    <string name="berry_black_theme_summary">Натурален черен фон за тъмна тема</string>
+    <string name="lineagelicense_title">LineageOS правна информация</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Вече сте на <xliff:g id="step_count">%1$d </xliff:g> крачка от включването на \"Опции на програмиста\".</item>
+        <item quantity="other">Вече сте на <xliff:g id="step_count">%1$d </xliff:g> крачки от включването на \"Опции на програмиста\".</item>
+    </plurals>
+    <string name="show_dev_on_cm">Включихте менюто \"Опции на програмиста\"!</string>
+    <string name="show_dev_already_cm">Няма нужда, вече сте включили менюто Опции на програмиста.</string>
+    <string name="peak_refresh_rate_summary_custom">Автоматично увеличава честотата на опресняване от 60 на %1$d Hz за част от съдържанието. По-интензивно използване на батерията.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Натиснете, за заспиване</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Докоснете двукратно лентата на състоянието или заключващия екран, за да изключите дисплея</string>
+    <string name="heads_up_notifications_enabled_title">Изскачащи известия</string>
+    <string name="heads_up_notifications_enabled_summary">Покажи приоритетни известия в малък плаващ прозорец</string>
+    <string name="high_touch_sensitivity_title">Висока чувствителност на допир</string>
+    <string name="high_touch_sensitivity_summary">Увеличи сензорната чувствителност, така че може да се използва докато носите ръкавици</string>
+    <string name="tethering_allow_vpn_upstreams_title">Разрешете на клиентите да използват VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Разрешете на клиентите на точка за достъп да използват VPN връзките на това устройство, за да се свържат с мрежата</string>
+    <string name="increasing_ring_volume_option_title">Увеличаване силата на звука при звънене</string>
+    <string name="increasing_ring_min_volume_title">Начална сила на звука</string>
+    <string name="increasing_ring_ramp_up_time_title">Време на увеличение</string>
+    <string name="lockscreen_media_art_title">Показване на артистична обложка</string>
+    <string name="lock_settings_picker_pattern_size_message">Изберете размера на шаблона</string>
+    <string name="lockpattern_settings_enable_error_path_title">Покажи модела на грешката</string>
+    <string name="lockpattern_settings_enable_dots_title">Покажи точките на модела</string>
+    <string name="max_refresh_rate_title">Пикова честота на опресняване</string>
+    <string name="min_refresh_rate_title">Минимална честота на опресняване</string>
+    <string name="show_navbar_hint_title">Подсказки за навигация</string>
+    <string name="show_navbar_hint_summary">Показване на подсказки за навигация в долната част на екрана</string>
+    <string name="app_notification_sound_timeout_title">Минимално време между напомняния</string>
+    <string name="app_notification_sound_timeout_summary_template">Разреши звуци или вибрации, но не повече от веднъж на всеки <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Без ограничение</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунди</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунди</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 минута</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 минути</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 минути</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 минути</string>
+    <string name="auto_brightness_one_shot_title">Автоматична яркост на един кадър</string>
+    <string name="auto_brightness_one_shot_summary">Регулирането на яркостта ще се извършва само в момента на включване на екрана</string>
+    <string name="data_usage_app_restrict_all">Разреши достъп до мрежата</string>
+    <string name="data_usage_app_restrict_all_summary">Активирай използване на мрежата</string>
+    <string name="data_usage_app_restrict_mobile">Мобилни данни</string>
+    <string name="data_usage_app_restrict_mobile_summary">Разреши използването на мобилни данни</string>
+    <string name="data_usage_app_restrict_vpn">VPN данни</string>
+    <string name="data_usage_app_restrict_vpn_summary">Активиране използването на VPN данни</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi данни</string>
+    <string name="data_usage_app_restrict_wifi_summary">Разреши използването на Wi\u2011Fi данни</string>
+    <string name="unlock_scramble_pin_layout_title">Разбъркано оформление</string>
+    <string name="unlock_scramble_pin_layout_summary">Разбъркано PIN оформление при отключване на устройството</string>
+    <string name="proximity_wake_title">Предотвратяване на случайно събуждане</string>
+    <string name="proximity_wake_summary">Провери сензора за близост преди събуждане на екрана</string>
+    <string name="touchscreen_gesture_settings_title">Тъчскрийн жестове</string>
+    <string name="touchscreen_gesture_settings_summary">Изпълнява различни бързи действия чрез жестове върху сензорния екран</string>
+    <string name="touchscreen_hovering_title">Сочейки по сензорния екран</string>
+    <string name="touchscreen_hovering_summary">Позволява ви да сочите по екрана като с мишка в уеб браузъри, отдалечени настолни компютри и др</string>
+    <string name="wake_when_plugged_or_unplugged_title">Събуждане при зареждане</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Включване на екрана, когато включвате или изключвате източник на захранване</string>
+    <string name="fast_charging_title">Бързо зареждане</string>
+    <string name="fast_charging_summary">Деактивирайте, за да намалите топлината, произведена от устройството по време на зареждане или да удължите живота на батерията</string>
+</resources>
diff --git a/res/values-bn/cm_strings.xml b/res/values-bn/cm_strings.xml
new file mode 100644
index 0000000..3d20c47
--- /dev/null
+++ b/res/values-bn/cm_strings.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">অতিরিক্ত</string>
+    <string name="advanced_keyboard_settings_title">অ্যাডভান্সড সেটিংস</string>
+    <string name="adb_enable_root">রুট করা ডিবাগিং</string>
+    <string name="adb_enable_summary_root">রুট করা অবস্থায় অ্যান্ড্রয়েড ডিবাগিং করার অনুমতি দিন</string>
+    <string name="lineagelicense_title">সায়ানোজেনমড বৈধতা</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">আপনি ডেভেলপার সেটিংস সক্রিয় করার থেকে এখন <xliff:g id="step_count">%1$d</xliff:g> ধাপ দূরে।</item>
+        <item quantity="other">আপনি ডেভেলপার সেটিংস সক্রিয় করার থেকে এখন <xliff:g id="step_count">%1$d</xliff:g> ধাপ দূরে।</item>
+    </plurals>
+    <string name="show_dev_on_cm">আপনি ডেভেলপার সেটিংস সক্রিয় করেছেন!</string>
+    <string name="show_dev_already_cm">প্রয়োজন নেই, আপনি ইতিমধ্যে ডেভেলপার সেটিংস সক্রিয় করেছেন।</string>
+    <string name="peak_refresh_rate_summary_custom">কিছু কন্টেন্টের রিফ্রেশ রেট অটোমেটিক ৬০ থেকে ৯০ Hz পর্যন্ত বেড়ে যায়। ব্যাটারির ব্যবহার বেড়ে যায়।</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">ছোট ভাসমান উইন্ডোতে অগ্রাধিকার প্রজ্ঞাপন প্রদর্শন করুন</string>
+    <string name="high_touch_sensitivity_title">উচ্চ স্পর্শ সংবেদনশীলতা</string>
+    <string name="high_touch_sensitivity_summary">টাচস্ক্রীন সংবেদনশীলতা বৃদ্ধি করুন যাতে গ্লাভস পরিহিত অবস্থায় ব্যবহার করা যেতে পারে</string>
+    <string name="lock_settings_picker_pattern_size_message">প্যাটার্নের আকার নির্ধারন করুন</string>
+    <string name="min_refresh_rate_title">সর্বনিম্ন রিফ্রেশ রেট</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ট্যাবলেটের সামনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ডিভাইসের সামনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ফোনের সামনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ট্যাবলেটের পিছনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ডিভাইসের পিছনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ফোনের পিছনের দিকে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ট্যাবলেটের এক পাশে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ডিভাইসের এক পাশে আছে</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">ফিঙ্গারপ্রিন্ট সেন্সরটি আপনার ফোনের এক পাশে আছে</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">আপনার ট্যাবলেটের সামনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">আপনার ডিভাইসের সামনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">আপনার ফোনের সামনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">আপনার ট্যাবলেটের পিছনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">আপনার ডিভাইসের পিছনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">আপনার ফোনের পিছনের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">আপনার ট্যাবলেটের পাশের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">আপনার ডিভাইসের পাশের সেন্সরে টিপ দিন</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">আপনার ফোনের পাশের সেন্সরে টিপ দিন</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">১০ সেকেন্ড</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">৩০ সেকেন্ড</string>
+    <string name="app_notification_sound_timeout_value_1_minute">১ মিনিট</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">৫ মিনিট</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">১০ মিনিট</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">৩০ মিনিট</string>
+    <string name="data_usage_app_restrict_mobile">মোবাইল ডাটা</string>
+    <string name="data_usage_app_restrict_mobile_summary">মোবাইল ডাটার ব্যবহার সক্ষম করো</string>
+    <string name="data_usage_app_restrict_vpn">ভিপিএন ডাটা</string>
+    <string name="unlock_scramble_pin_layout_title">একত্র বিন্যাস</string>
+    <string name="unlock_scramble_pin_layout_summary">একত্র পিন বিন্যাস যখন ডিভাইস অবমুক্ত করার সময়</string>
+    <string name="proximity_wake_title">আকস্মিক জেগে ওঠা প্রতিহত করুন</string>
+    <string name="wake_when_plugged_or_unplugged_title">প্লাগইন অবস্থায় জেগে উঠা</string>
+    <string name="wake_when_plugged_or_unplugged_summary">শক্তির উৎস যখন যুক্ত অথবা বিচ্ছিন্ন করা হচ্ছে তখন পর্দা সচল করুন</string>
+    <string name="fast_charging_title">ফাস্ট চার্জিং</string>
+    <string name="fast_charging_summary">চার্জিং এর সময় ডিভাইস কম গরম হতে অথবা ব্যাটারির আয়ু বাড়াতে অক্ষম করতে পারেন</string>
+</resources>
diff --git a/res/values-bs/cm_strings.xml b/res/values-bs/cm_strings.xml
new file mode 100644
index 0000000..945ac38
--- /dev/null
+++ b/res/values-bs/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Automatski povećava interval osvježavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+</resources>
diff --git a/res/values-ca/cm_strings.xml b/res/values-ca/cm_strings.xml
new file mode 100644
index 0000000..7f2a0e4
--- /dev/null
+++ b/res/values-ca/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extres</string>
+    <string name="advanced_keyboard_settings_title">Configuració avançada</string>
+    <string name="adb_enable_root">Depuració arrelada</string>
+    <string name="adb_enable_summary_root">Permet executar la depuració d\'Android com a root</string>
+    <string name="backup_transport_setting_label">Canvia el proveïdor de còpia de seguretat</string>
+    <string name="backup_transport_title">Trieu un proveïdor de còpia de seguretat</string>
+    <string name="berry_black_theme_title">Negre pur</string>
+    <string name="berry_black_theme_summary">Fons negre pur per al tema fosc</string>
+    <string name="lineagelicense_title">Llicència LineageOS</string>
+    <string name="device_info_protected_single_press">Toqueu per mostrar la informació</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ara ets a <xliff:g id="step_count">%1$d</xliff:g> pas d\'habilitar les configuracions de desenvolupament.</item>
+        <item quantity="other">Ara ets a <xliff:g id="step_count">%1$d</xliff:g> passos d\'habilitar les configuracions de desenvolupament.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Has habilitat les configuracions de desenvolupament!</string>
+    <string name="show_dev_already_cm">No fa falta, ja has habilitat les configuracions de desenvolupament.</string>
+    <string name="peak_refresh_rate_summary_custom">Augmenta automàticament la freqüència d\'actualització de 60 a %1$d Hz en alguns continguts. Augmenta l\'ús de la bateria.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Pica per posar en repòs</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Pica dues vegades a la barra d\'estat o a la pantalla de bloqueig per apagar la pantalla</string>
+    <string name="high_touch_polling_rate_title">Taxa de petició tàctil elevada</string>
+    <string name="high_touch_polling_rate_summary">Augmenta la taxa de sondeig de la pantalla tàctil</string>
+    <string name="heads_up_notifications_enabled_title">Notificacions emergents</string>
+    <string name="heads_up_notifications_enabled_summary">Mostra les notificacions prioritàries en una petita finestra flotant</string>
+    <string name="high_touch_sensitivity_title">Sensibilitat al tacte alta</string>
+    <string name="high_touch_sensitivity_summary">Incrementa la sensibilitat de la pantalla tàctil de manera que pugui utilitzar-se si es porten guants</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permet als clients utilitzar les VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permet que els clients de punts d\'accés utilitzin les connexions VPN d\'aquest dispositiu per a la connectivitat ascendent</string>
+    <string name="increasing_ring_volume_option_title">Volum del to de trucada creixent</string>
+    <string name="increasing_ring_min_volume_title">Volum inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Durada del crescendo</string>
+    <string name="lockscreen_media_art_title">Mostra la coberta de l\'àlbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Tria una mida de patró</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostra el patró erroni</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostra els punts del patró</string>
+    <string name="max_refresh_rate_title">Freqüència de refresc màxima</string>
+    <string name="min_refresh_rate_title">Freqüència de refresc mínima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localitza el sensor d\'empremtes digitals a la part davantera de la tauleta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localitza el sensor d\'empremtes digitals a la part davantera del teu dispositiu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localitza el sensor d\'empremtes digitals a la part davantera del teu mòbil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localitza el sensor d\'empremtes digitals a la part trasera de la tauleta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localitza el sensor d\'empremtes digitals a la part trasera del teu dispositiu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localitza el sensor d\'empremtes digitals a la part trasera del teu mòbil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localitza el sensor d\'empremtes digitals al costat de la teua tauleta.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localitza el sensor d\'empremtes digitals al costat del teu dispositiu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localitza el sensor d\'empremtes digitals al costat del teu mòbil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toca el sensor a la part davantera de la tauleta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toca el sensor a la part davantera del dispositiu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toca el sensor a la part davantera del mòbil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toca el sensor a la part trasera de la tauleta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toca el sensor a la part trasera del teu dispositiu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toca el sensor a la part trasera del mòbil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toca el sensor al costat de la tauleta.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toca el sensor al costat del dispositiu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toca el sensor al costat del mòbil.</string>
+    <string name="show_navbar_hint_title">Suggerència de navegació</string>
+    <string name="show_navbar_hint_summary">Mostra la barra de suggeriments de navegació a la part inferior de la pantalla</string>
+    <string name="app_notification_sound_timeout_title">Temps mínim entre els sons de notificació</string>
+    <string name="app_notification_sound_timeout_summary_template">Permet sons o vibració no més d\'una vegada cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sense restricció</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segons</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segons</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuts</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuts</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuts</string>
+    <string name="auto_brightness_one_shot_title">Ajusta la lluentor una sola vegada</string>
+    <string name="auto_brightness_one_shot_summary">L\'ajust de la lluentor només es produirà en el moment que la pantalla estigui encesa</string>
+    <string name="data_usage_app_restrict_all">Permet l\'accés a la xarxa</string>
+    <string name="data_usage_app_restrict_all_summary">Activa l\'ús de la xarxa</string>
+    <string name="data_usage_app_restrict_mobile">Dades mòbils</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activa l\'ús de dades mòbils</string>
+    <string name="data_usage_app_restrict_vpn">Dades VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Habilita l\'ús de dades via VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dades Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activa l\'ús de dades Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposició aleatòria</string>
+    <string name="unlock_scramble_pin_layout_summary">Disposa aleatòriament les tecles del PIN quan es desbloquegi el dispositiu</string>
+    <string name="proximity_wake_title">Evita l\'encesa accidental</string>
+    <string name="proximity_wake_summary">Comprova el sensor de proximitat abans d\'encendre la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Gestos a la pantalla tàctil</string>
+    <string name="touchscreen_gesture_settings_summary">Fes diversos gestos a la pantalla tàctil per fer accions ràpides</string>
+    <string name="touchscreen_hovering_title">Sura per sobre la pantalla tàctil</string>
+    <string name="touchscreen_hovering_summary">Et permet surar per sobre la pantalla com un ratolí en els navegadors web, escriptoris remots, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Encén en endollar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Encén la pantalla en connectar o desconnectar d\'una font d\'energia</string>
+    <string name="fast_charging_title">Càrrega ràpida</string>
+    <string name="fast_charging_summary">Desactiveu-lo per reduir la calor produïda pel dispositiu mentre es carrega o per ampliar la vida útil de la bateria</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar el telèfon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar la tauleta</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar el dispositiu</string>
+    <string name="ambient_display_screen_off_udfps_summary">Per activar la pantalla i desbloquejar-la, mantingueu premut el sensor d\'empremtes dactilars de sota la pantalla.</string>
+    <string name="storage_warning_internal">Avís: aquesta opció pot no funcionar correctament o provocar la pèrdua de dades i, per tant, no es recomana!</string>
+</resources>
diff --git a/res/values-cs/cm_strings.xml b/res/values-cs/cm_strings.xml
new file mode 100644
index 0000000..221fed2
--- /dev/null
+++ b/res/values-cs/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Doplňky</string>
+    <string name="advanced_keyboard_settings_title">Pokročilá nastavení</string>
+    <string name="adb_enable_root">Ladění s\u00a0právy root</string>
+    <string name="adb_enable_summary_root">Povolit spuštění ladění Androidu s\u00a0právy root</string>
+    <string name="backup_transport_setting_label">Změnit poskytovatele zálohování</string>
+    <string name="backup_transport_title">Vyberte poskytovatele zálohování</string>
+    <string name="berry_black_theme_title">Čistě černý</string>
+    <string name="berry_black_theme_summary">Čistě černé pozadí při tmavém motivu</string>
+    <string name="lineagelicense_title">Právní ujednání LineageOS</string>
+    <string name="device_info_protected_single_press">Klepnutím zobrazit informace</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> krok od povolení vývojářských nastavení.</item>
+        <item quantity="few">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroky od povolení vývojářských nastavení.</item>
+        <item quantity="many">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroků od povolení vývojářských nastavení.</item>
+        <item quantity="other">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroků od povolení vývojářských nastavení.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Vývojářské nastavení je povoleno!</string>
+    <string name="show_dev_already_cm">Vývojářské nastavení je již povoleno.</string>
+    <string name="peak_refresh_rate_summary_custom">U některého obsahu automaticky zvýší obnovovací frekvenci z 60 na %1$d Hz. Zvyšuje využití baterie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Klepnutím uspat</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dvojitým poklepáním na stavovou lištu nebo zamykací obrazovku vypnout obrazovku</string>
+    <string name="high_touch_polling_rate_title">Vysoká vzorkovací frekvence pro dotyk</string>
+    <string name="high_touch_polling_rate_summary">Zvýšení vzorkovací frekvence dotykové obrazovky</string>
+    <string name="heads_up_notifications_enabled_title">Plovoucí upozornění</string>
+    <string name="heads_up_notifications_enabled_summary">Zobrazit prioritní oznámení v malém plovoucím okně</string>
+    <string name="high_touch_sensitivity_title">Vysoká citlivost dotyku</string>
+    <string name="high_touch_sensitivity_summary">Zvýšení citlivosti dotykové vrstvy, což umožňuje použít rukavice</string>
+    <string name="tethering_allow_vpn_upstreams_title">Umožnit klientům používat VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Povolit klientům hotspotu používat připojení VPN tohoto zařízení pro upstream konektivitu</string>
+    <string name="increasing_ring_volume_option_title">Zvyšující se hlasitost vyzvánění</string>
+    <string name="increasing_ring_min_volume_title">Počáteční hlasitost</string>
+    <string name="increasing_ring_ramp_up_time_title">Doba zesilování</string>
+    <string name="lockscreen_media_art_title">Zobrazit obal médií</string>
+    <string name="lock_settings_picker_pattern_size_message">Zvolit velikost vzoru</string>
+    <string name="lockpattern_settings_enable_error_path_title">Zobrazit cestu chybného gesta</string>
+    <string name="lockpattern_settings_enable_dots_title">Zobrazit body gesta</string>
+    <string name="max_refresh_rate_title">Maximální obnovovací frekvence</string>
+    <string name="min_refresh_rate_title">Minimální obnovovací frekvence</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Vyhledejte snímač otisků prstů na přední straně tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Vyhledejte snímač otisků prstů na přední straně zařízení.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Vyhledejte snímač otisků prstů na přední straně telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Vyhledejte snímač otisků prstů na zadní straně tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Vyhledejte snímač otisků prstů na zadní straně zařízení.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Vyhledejte snímač otisků prstů na zadní straně telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Vyhledejte snímač otisků prstů na straně tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Vyhledejte snímač otisků prstů na straně zařízení.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Vyhledejte snímač otisků prstů na straně telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotkněte se senzoru na přední straně tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotkněte se senzoru na přední straně zařízení.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotkněte se senzoru na přední straně telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotkněte se senzoru na zadní straně tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotkněte se senzoru na zadní straně zařízení.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotkněte se senzoru na zadní straně telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotkněte se senzoru na straně tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotkněte se senzoru na straně zařízení.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotkněte se senzoru na boční straně telefonu.</string>
+    <string name="show_navbar_hint_title">Navigační nápověda</string>
+    <string name="show_navbar_hint_summary">Zobrazit navigační nápovědu ve spodní části obrazovky (tenký proužek)</string>
+    <string name="app_notification_sound_timeout_title">Minimální doba mezi zvuky oznámení</string>
+    <string name="app_notification_sound_timeout_summary_template">Povolit zvuky nebo vibrace ne více než jednou každých <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Bez omezení</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekund</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekund</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minut</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minut</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minut</string>
+    <string name="auto_brightness_one_shot_title">Rychlé nastavení automatického jasu</string>
+    <string name="auto_brightness_one_shot_summary">K úpravě jasu dojde pouze v okamžiku zapnutí obrazovky</string>
+    <string name="data_usage_app_restrict_all">Povolit přístup k síti</string>
+    <string name="data_usage_app_restrict_all_summary">Povolit využití sítě</string>
+    <string name="data_usage_app_restrict_mobile">Mobilní data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Povolit používání mobilních dat</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Povolit používání VPN dat</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Povolit používání Wi\u2011Fi dat</string>
+    <string name="unlock_scramble_pin_layout_title">Přeházet rozložení</string>
+    <string name="unlock_scramble_pin_layout_summary">Přeházet rozložení pro zadání PIN při odemykání zařízení</string>
+    <string name="proximity_wake_title">Zabránit nechtěnému probuzení</string>
+    <string name="proximity_wake_summary">Kontrolovat senzor přiblížení pro zabránění nechtěného probuzení</string>
+    <string name="touchscreen_gesture_settings_title">Gesta na obrazovce</string>
+    <string name="touchscreen_gesture_settings_summary">Možnost spustit rychlou akci pomocí různých gest na obrazovce</string>
+    <string name="touchscreen_hovering_title">Detekce nad obrazovkou</string>
+    <string name="touchscreen_hovering_summary">Umožňuje pohybovat se jakoby nad obsahem obrazovky podobně, jako když myší najedete na nějaký ovládací prvek</string>
+    <string name="wake_when_plugged_or_unplugged_title">Probudit při nabíjení</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Zapnout obrazovku při připojení nebo odpojení nabíječky</string>
+    <string name="fast_charging_title">Rychlé nabíjení</string>
+    <string name="fast_charging_summary">Vypnutím snížíte teplo produkované zařízením během nabíjení nebo prodloužíte životnost baterie</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Dlouhým stisknutím snímače otisků prstů odemknout telefon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Dlouhým stisknutím snímače otisků prstů odemknout tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Dlouhým stisknutím snímače otisků prstů odemknout zařízení</string>
+    <string name="ambient_display_screen_off_udfps_summary">Chcete-li obrazovku probudit a odemknout, dlouze stiskněte snímač otisků prstů v displeji.</string>
+    <string name="storage_warning_internal">Varování: Tato možnost nemusí fungovat správně nebo může vést ke ztrátě dat, proto se nedoporučuje!</string>
+</resources>
diff --git a/res/values-cy/cm_strings.xml b/res/values-cy/cm_strings.xml
new file mode 100644
index 0000000..eb894de
--- /dev/null
+++ b/res/values-cy/cm_strings.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ychwanegion</string>
+    <string name="advanced_keyboard_settings_title">Gosodiadau uwch</string>
+    <string name="adb_enable_root">Dadfygio wedi gwreiddio</string>
+    <string name="adb_enable_summary_root">Caniatáu rhedeg dadfygio Android fel gwraidd</string>
+    <string name="backup_transport_setting_label">Newid darparwr wrth gefn</string>
+    <string name="backup_transport_title">Dewis darparwr wrth gefn</string>
+    <string name="berry_black_theme_title">Du pur</string>
+    <string name="berry_black_theme_summary">Cefndir du pur i\'r thema dywyll</string>
+    <string name="lineagelicense_title">Cyfreithiol LineageOS</string>
+    <string name="device_info_protected_single_press">Tapio i ddangos gwybodaeth</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="zero">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> camau i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="one">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="two">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> gam i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="few">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="many">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cham i ffwrdd o alluogi gosodiadau datblygu.</item>
+        <item quantity="other">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Rwyt wedi galluogi gosodiadau datblygu!</string>
+    <string name="show_dev_already_cm">Dim angen; rwyt eisoes wedi galluogi gosodiadau datblygu.</string>
+    <string name="peak_refresh_rate_summary_custom">Mae\'n codi\'r gyfradd adnewyddu yn awtomatig o 60 i %1$d Hz ar gyfer rhai cynnwys. Mae\'n defnyddio mwy o fatri.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tapio i gysgu</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tapio dwywaith ar y bar statws neu\'r sgrin cloi i droi\'r sgrin i ffwrdd</string>
+    <string name="high_touch_polling_rate_title">Cyfradd polio cyffyrddiad uchel</string>
+    <string name="high_touch_polling_rate_summary">Cynyddu cyfradd polio\'r sgrin gyffwrdd</string>
+    <string name="heads_up_notifications_enabled_title">Rhagrybudd</string>
+    <string name="heads_up_notifications_enabled_summary">Dangos hysbysiadau blaenoriaeth mewn ffenestr fach sy\'n arnofio</string>
+    <string name="high_touch_sensitivity_title">Sensitifrwydd cyffwrdd uchel</string>
+    <string name="high_touch_sensitivity_summary">Cynyddu sensitifrwydd y sgrin gyffwrdd fel y gellir ei defnyddio wrth wisgo menig</string>
+    <string name="tethering_allow_vpn_upstreams_title">Caniatáu cleientiaid i ddefnyddio VPNau</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Caniatáu cleientiaid llecynnau Wi-Fi i ddefnyddio cysylltiadau VPN y ddyfais hon</string>
+    <string name="increasing_ring_volume_option_title">Uchder sain yn cynyddu</string>
+    <string name="increasing_ring_min_volume_title">Uchder sain i ddechrau</string>
+    <string name="increasing_ring_ramp_up_time_title">Amser i gynyddu</string>
+    <string name="lockscreen_media_art_title">Dangos llun clawr cyfryngau</string>
+    <string name="lock_settings_picker_pattern_size_message">Dewisa faint patrwm</string>
+    <string name="lockpattern_settings_enable_error_path_title">Dangos gwall patrwm</string>
+    <string name="lockpattern_settings_enable_dots_title">Dangos dotiau patrwm</string>
+    <string name="max_refresh_rate_title">Cyfradd adnewyddu uchaf</string>
+    <string name="min_refresh_rate_title">Cyfradd adnewyddu leiaf</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar flaen dy lechen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Ffeindia\'r synhwyrydd ôl bys ar flaen dy ddyfais.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Ffeindia\'r synhwyrydd ôl bys ar flaen dy ffôn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar gefn dy lechen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Ffeindia\'r synhwyrydd ôl bys ar gefn dy ddyfais.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Ffeindia\'r synhwyrydd ôl bys ar gefn dy ffôn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar ochr dy lechen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Ffeindia\'r synhwyrydd ôl bys ar ochr dy ddyfais.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Ffeindia\'r synhwyrydd ôl bys ar ochr dy ffôn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Cyffyrdda\'r synhwyrydd ar flaen dy lechen.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cyffyrdda\'r synhwyrydd ar flaen dy ddyfais.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Cyffyrdda\'r synhwyrydd ar flaen dy ffôn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Cyffyrdda\'r synhwyrydd ar gefn dy lechen.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cyffyrdda\'r synhwyrydd ar gefn dy ddyfais.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Cyffyrdda\'r synhwyrydd ar gefn dy ffôn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Cyffyrdda\'r synhwyrydd ar ochr dy lechen.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cyffyrdda\'r synhwyrydd ar ochr dy ddyfais.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Cyffyrdda\'r synhwyrydd ar ochr dy ffôn.</string>
+    <string name="show_navbar_hint_title">Awgrymiad llywio</string>
+    <string name="show_navbar_hint_summary">Dangos bar awgrymiadau llywio ar waelod y sgrin</string>
+    <string name="app_notification_sound_timeout_title">Y cyfnod lleiaf o amser rhwng seiniau hysbysiadau</string>
+    <string name="app_notification_sound_timeout_summary_template">Peidio â chaniatáu synau na dirgrynu yn amlach nag unwaith pob <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Dim cyfyngiad</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 eiliad</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 eiliad</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 munud</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 munud</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 munud</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 munud</string>
+    <string name="auto_brightness_one_shot_title">Awto-disgleirdeb un tro</string>
+    <string name="auto_brightness_one_shot_summary">Caiff y disgleirdeb ei addasu dim ond ar y foment mae\'r sgrin yn troi ymlaen.</string>
+    <string name="data_usage_app_restrict_all">Caniatáu mynediad i rwydwaith</string>
+    <string name="data_usage_app_restrict_all_summary">Caniatáu defnydd o rwydwaith</string>
+    <string name="data_usage_app_restrict_mobile">Data symudol</string>
+    <string name="data_usage_app_restrict_mobile_summary">Galluogi\'r defnydd o ddata symudol</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Galluogi defnyddio VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Data Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Galluogi defnydd data Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Cymysgu\'r cynllun</string>
+    <string name="unlock_scramble_pin_layout_summary">Cymysgu cynllun y PIN wrth ddatgloi\'r ddyfais</string>
+    <string name="proximity_wake_title">Rhwystro deffro ar gam</string>
+    <string name="proximity_wake_summary">Gwirio\'r synhwyrydd agosrwydd cyn deffro\'r sgrin</string>
+    <string name="touchscreen_gesture_settings_title">Ystumiau sgrin gyffwrdd</string>
+    <string name="touchscreen_gesture_settings_summary">Perfformio ystumiau amrywiol ar y sgrin gyffwrdd am weithredoedd cyflym</string>
+    <string name="touchscreen_hovering_title">Hofran sgrin gyffwrdd</string>
+    <string name="touchscreen_hovering_summary">Mae\'n dy ganiatáu i hofran ar y sgrin fel defnyddio llygoden mewn porwyr, byrddau gwaith pell, ayyb</string>
+    <string name="wake_when_plugged_or_unplugged_title">Deffro wrth gysylltu â phŵer</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Troi\'r sgrin ymlaen wrth gysylltu neu ddatgysylltu â phŵer</string>
+    <string name="fast_charging_title">Gwefru cyflym</string>
+    <string name="fast_charging_summary">Analluoga i leihau\'r gwres sy\'n cael ei gynhyrchu gan y ddyfais wrth wefru neu i ymestyn oes y batri</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r ffôn</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r llechen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r ddyfais</string>
+    <string name="ambient_display_screen_off_udfps_summary">I ddeffro a datgloi dy sgrin, dalia yn hir dros y synhwyrydd ôl bys sydd o dan y sgrin.</string>
+    <string name="storage_warning_internal">Rhybudd: Mae\'n bosib na fydd yr opsiwn hwn yn gweithio\'n iawn ac yn arwain at golli data, felly ni argymhellir!</string>
+</resources>
diff --git a/res/values-da/cm_strings.xml b/res/values-da/cm_strings.xml
new file mode 100644
index 0000000..fc258f0
--- /dev/null
+++ b/res/values-da/cm_strings.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ekstra</string>
+    <string name="advanced_keyboard_settings_title">Avancerede indstillinger</string>
+    <string name="lineagelicense_title">LineageOS-juridisk</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du er nu <xliff:g id="step_count">%1$d</xliff:g> skridt fra at aktivere udvikler-indstillinger.</item>
+        <item quantity="other">Du er nu <xliff:g id="step_count">%1$d</xliff:g> skridt fra at aktivere udvikler-indstillinger.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du har aktiveret udvikler-indstillinger!</string>
+    <string name="show_dev_already_cm">Behøves ikke.; du har allerede aktiveret udvikler-indstillinger.</string>
+    <string name="peak_refresh_rate_summary_custom">Øger automatisk opdateringshastigheden fra 60 til %1$d Hz for noget indhold. Medfører højere batteriforbrug.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tryk for at slumre</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dobbelt-tryk på statusbjælken eller låseskærmen, for at slukke for skærmen</string>
+    <string name="high_touch_polling_rate_title">Høj berøringsmåling rate</string>
+    <string name="high_touch_polling_rate_summary">Forøg berøringsskærm afstemningshastigheden</string>
+    <string name="heads_up_notifications_enabled_title">Banner notifikationer</string>
+    <string name="heads_up_notifications_enabled_summary">Vis prioriterede notifikationer i et lille svævende vindue</string>
+    <string name="high_touch_sensitivity_title">Høj berøringsfølsomhed</string>
+    <string name="high_touch_sensitivity_summary">Forøg berøringsfølsom skærms følsomhed, så den kan bruges med handsker på</string>
+    <string name="tethering_allow_vpn_upstreams_title">Tillad klienter at bruge VPN\'er</string>
+    <string name="increasing_ring_volume_option_title">Stigende ringe-lydstyrke</string>
+    <string name="increasing_ring_min_volume_title">Start-lydstyrke</string>
+    <string name="increasing_ring_ramp_up_time_title">Opvarmningstid</string>
+    <string name="lockscreen_media_art_title">Vis medie-albumbilleder</string>
+    <string name="lock_settings_picker_pattern_size_message">Vælg en mønsterstørrelse</string>
+    <string name="lockpattern_settings_enable_error_path_title">Vis mønster-fejl</string>
+    <string name="lockpattern_settings_enable_dots_title">Vis mønster-prikker</string>
+    <string name="min_refresh_rate_title">Minimum skærm forfriskningstid</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Find fingeraftrykssensoren på tablet\'ens forside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Find fingeraftrykssensoren på enhedens forside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Find fingeraftrykssensoren på forsiden af ​​telefonen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Find fingeraftrykssensoren på tablet\'ens bagside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Find fingeraftrykslæseren på enhedens bagside.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Find fingeraftrykssensoren på bagsiden af ​​telefonen.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Find fingeraftrykslæseren på tablet\'ens side.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Find fingeraftrykslæseren på enhedens side.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Find fingeraftrykssensoren på mobilens side.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tryk på fingeraftrykslæseren på tablet\'ens forside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tryk på fingeraftrykssensoren på enhedens forside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tryk på fingeraftrykssensoren på mobilens forside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tryk på fingeraftrykssensoren på tablet\'ens bagside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tryk på fingeraftrykssensoren på enhedens bagside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tryk på fingeraftrykssensoren på mobilens bagside.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tryk på fingeraftrykssensoren på tablet\'ens side.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tryk på fingeraftrykssensoren på enhedens side.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tryk på fingeraftrykssensoren på mobilens side.</string>
+    <string name="app_notification_sound_timeout_title">Minimumstid imellem notifikationslyde</string>
+    <string name="app_notification_sound_timeout_summary_template">Tillad ikke lyde, eller vibration, mere end én gang hver <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Ingen restriktion</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutter</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutter</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutter</string>
+    <string name="auto_brightness_one_shot_title">Etskuds automatisk lysstyrke</string>
+    <string name="auto_brightness_one_shot_summary">Lysstyrkejustering vil kun forekomme i det øjeblik, skærmen tændes</string>
+    <string name="data_usage_app_restrict_mobile">Mobildata</string>
+    <string name="data_usage_app_restrict_mobile_summary">Aktiver brug af mobildata</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Aktivér brug af VPN-data</string>
+    <string name="unlock_scramble_pin_layout_title">Omvælt opsætning</string>
+    <string name="unlock_scramble_pin_layout_summary">Omvælt PIN-opsætning, ved oplåsning af enhed</string>
+    <string name="proximity_wake_title">Forhindr utilsigtet vækning</string>
+    <string name="touchscreen_gesture_settings_title">Bevægelser på berøringsfølsom skærm</string>
+    <string name="touchscreen_gesture_settings_summary">Udfør forskellige bevægelser på berøringsfølsom skærm, for hurtig-handlinger</string>
+    <string name="touchscreen_hovering_title">Berøringsfølsom skærm-svævning</string>
+    <string name="touchscreen_hovering_summary">Tillader dig at holde fingeren over skærmen, som en mus i netlæsere, på fjernskriveborde, osv.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Vågn ved tilslutning</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Tænd for skærmen, ved tilslutning til, eller afbrydelse fra en strømkilde</string>
+    <string name="fast_charging_title">Hurtig opladning</string>
+    <string name="fast_charging_summary">Deaktiver for at reducere den varme, der produceres af enheden, mens du oplader og forlæng batteriets levetid</string>
+</resources>
diff --git a/res/values-de/cm_strings.xml b/res/values-de/cm_strings.xml
new file mode 100644
index 0000000..f6eda65
--- /dev/null
+++ b/res/values-de/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Erweiterte Einstellungen</string>
+    <string name="adb_enable_root">Root-Debugging</string>
+    <string name="adb_enable_summary_root">Android-Debugging als Root erlauben</string>
+    <string name="backup_transport_setting_label">Backup-Anbieter ändern</string>
+    <string name="backup_transport_title">Backup-Anbieter auswählen</string>
+    <string name="berry_black_theme_title">Reines Schwarz</string>
+    <string name="berry_black_theme_summary">Rein schwarzer Hintergrund für dunkles Design</string>
+    <string name="lineagelicense_title">Rechtliche Hinweise zu LineageOS</string>
+    <string name="device_info_protected_single_press">Antippen, um Information anzuzeigen</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du bist <xliff:g id="step_count">%1$d</xliff:g> Schritt vom Aktivieren der Entwicklereinstellungen entfernt.</item>
+        <item quantity="other">Du bist <xliff:g id="step_count">%1$d</xliff:g> Schritte vom Aktivieren der Entwicklereinstellungen entfernt.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du hast die Entwicklereinstellungen aktiviert!</string>
+    <string name="show_dev_already_cm">Nicht nötig, du hast die Entwicklereinstellungen bereits aktiviert.</string>
+    <string name="peak_refresh_rate_summary_custom">Setzt die Aktualisierungsrate für einige Inhalte automatisch von 60 auf %1$d Hz herauf. Erhöhter Akkuverbrauch.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tippen für Standby</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Doppeltippe auf Statusleiste oder Sperrbildschirm, um das Display auszuschalten</string>
+    <string name="high_touch_polling_rate_title">Hohe Touchscreen-Abtastrate</string>
+    <string name="high_touch_polling_rate_summary">Touchscreen-Abtastrate erhöhen</string>
+    <string name="heads_up_notifications_enabled_title">Pop-up</string>
+    <string name="heads_up_notifications_enabled_summary">Wichtige Benachrichtigungen in einem kleinen, schwebenden Fenster anzeigen</string>
+    <string name="high_touch_sensitivity_title">Hohe Touch-Empfindlichkeit</string>
+    <string name="high_touch_sensitivity_summary">Touch-Empfindlichkeit erhöhen, um den Touchscreen auch mit Handschuhen bedienen zu können</string>
+    <string name="tethering_allow_vpn_upstreams_title">Clients erlauben VPN zu verwenden</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Erlaubt Hotspot-Clients die VPN-Verbindungen dieses Gerätes für die Upstream-Konnektivität zu verwenden</string>
+    <string name="increasing_ring_volume_option_title">Ansteigende Klingeltonlautstärke</string>
+    <string name="increasing_ring_min_volume_title">Anfangslautstärke</string>
+    <string name="increasing_ring_ramp_up_time_title">Anstiegszeit</string>
+    <string name="lockscreen_media_art_title">Albumcover anzeigen</string>
+    <string name="lock_settings_picker_pattern_size_message">Größe des Musters auswählen</string>
+    <string name="lockpattern_settings_enable_error_path_title">Sperrmuster-Fehler anzeigen</string>
+    <string name="lockpattern_settings_enable_dots_title">Sperrmuster-Punkte anzeigen</string>
+    <string name="max_refresh_rate_title">Maximale Aktualisierungsrate</string>
+    <string name="min_refresh_rate_title">Minimale Aktualisierungsrate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Finde den Fingerabdrucksensor auf der Vorderseite deines Tablets.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Finde den Fingerabdrucksensor auf der Vorderseite deines Geräts.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Finde den Fingerabdrucksensor auf der Vorderseite deines Telefons.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Finde den Fingerabdrucksensor auf der Rückseite deines Tablets.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Finde den Fingerabdrucksensor auf der Rückseite deines Geräts.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Finde den Fingerabdrucksensor auf der Rückseite deines Telefons.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Finde den Fingerabdrucksensor an der Seite deines Tablets.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Finde den Fingerabdrucksensor an der Seite deines Geräts.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Finde den Fingerabdrucksensor an der Seite deines Telefons.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Berühre den Sensor auf der Vorderseite deines Tablets.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Berühre den Sensor auf der Vorderseite deines Geräts.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Berühre den Sensor auf der Vorderseite deines Telefons.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Berühre den Sensor auf der Rückseite deines Tablets.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Berühre den Sensor auf der Rückseite deines Geräts.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Berühre den Sensor auf der Rückseite deines Telefons.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Berühre den Sensor an der Seite deines Tablets.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Berühre den Sensor an der Seite deines Geräts.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Berühre den Sensor an der Seite deines Telefons.</string>
+    <string name="show_navbar_hint_title">Angedeutete Navigationsleiste</string>
+    <string name="show_navbar_hint_summary">Deutet Navigationsleiste am unteren Bildschirmrand an</string>
+    <string name="app_notification_sound_timeout_title">Minimale Zeit zwischen Benachrichtigungstönen</string>
+    <string name="app_notification_sound_timeout_summary_template">Töne und Vibrationen nur alle <xliff:g id="duration">%1$s</xliff:g> zulassen</string>
+    <string name="app_notification_sound_timeout_value_none">Keine Beschränkung</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 Sekunden</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 Sekunden</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 Minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 Minuten</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 Minuten</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 Minuten</string>
+    <string name="auto_brightness_one_shot_title">Einmalige automatische Helligkeitseinstellung</string>
+    <string name="auto_brightness_one_shot_summary">Helligkeitsanpassung erfolgt nur beim Einschalten des Bildschirms</string>
+    <string name="data_usage_app_restrict_all">Netzwerkzugriff erlauben</string>
+    <string name="data_usage_app_restrict_all_summary">Netzwerknutzung aktivieren</string>
+    <string name="data_usage_app_restrict_mobile">Mobile Daten</string>
+    <string name="data_usage_app_restrict_mobile_summary">Nutzung mobiler Daten erlauben</string>
+    <string name="data_usage_app_restrict_vpn">VPN-Daten</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN-Datennutzung erlauben</string>
+    <string name="data_usage_app_restrict_wifi">WLAN-Daten</string>
+    <string name="data_usage_app_restrict_wifi_summary">WLAN-Datenzugriff erlauben</string>
+    <string name="unlock_scramble_pin_layout_title">Zufällige Anordnung</string>
+    <string name="unlock_scramble_pin_layout_summary">Bei jedem Entsperrversuch die Ziffernanordnung zufällig neu wählen</string>
+    <string name="proximity_wake_title">Unbeabsichtigtes Aufwecken verhindern</string>
+    <string name="proximity_wake_summary">Vor dem Aufwecken des Gerätes Näherungssensor überprüfen</string>
+    <string name="touchscreen_gesture_settings_title">Bildschirmgesten</string>
+    <string name="touchscreen_gesture_settings_summary">Führe durch verschiedene Bildschirmgesten einige schnelle Aktionen aus</string>
+    <string name="touchscreen_hovering_title">Touchscreen als Maus verwenden</string>
+    <string name="touchscreen_hovering_summary">Erlaubt es, den über dem Touchscreen schwebenden Finger im Browser, Remote Desktop usw. als Mauszeiger zu verwenden.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Beim Einstecken aufwecken</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Beim Anschließen oder Trennen einer Stromquelle den Bildschirm einschalten</string>
+    <string name="fast_charging_title">Schnelles Laden</string>
+    <string name="fast_charging_summary">Deaktivieren, um die vom Gerät beim Laden erzeugte Wärme zu reduzieren oder die Lebensdauer des Akkus zu verlängern</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Fingerabdrucksensor lange drücken, um das Telefon zu entsperren</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Fingerabdrucksensor lange drücken, um das Tablet zu entsperren</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Fingerabdrucksensor lange drücken, um das Gerät zu entsperren</string>
+    <string name="ambient_display_screen_off_udfps_summary">Zum Anschalten und Entsperren des Geräts den Fingerabdrucksensor im Display gedrückt halten.</string>
+    <string name="storage_warning_internal">Warnung: Diese Option funktioniert möglicherweise nicht richtig oder führt zu Datenverlust und wird daher nicht empfohlen!</string>
+</resources>
diff --git a/res/values-de/config.xml b/res/values-de/config.xml
index 6b1e0fb..e0ba348 100644
--- a/res/values-de/config.xml
+++ b/res/values-de/config.xml
@@ -17,4 +17,5 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="config_backup_settings_label" msgid="1623475653989899715"></string>
+    <bool name="language_capitalizes_nouns">true</bool>
 </resources>
diff --git a/res/values-el/cm_strings.xml b/res/values-el/cm_strings.xml
new file mode 100644
index 0000000..72b3bf5
--- /dev/null
+++ b/res/values-el/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Επιπλέον ρυθμίσεις</string>
+    <string name="advanced_keyboard_settings_title">Ρυθμίσεις για προχωρημένους</string>
+    <string name="adb_enable_root">Εντοπισμός σφαλμάτων root</string>
+    <string name="adb_enable_summary_root">Επιτρέψτε την εκτέλεση του εντοπισμού σφαλμάτων Android ως root</string>
+    <string name="backup_transport_setting_label">Αλλαγή παρόχου αντιγράφων ασφαλείας</string>
+    <string name="backup_transport_title">Επιλέξτε πάροχο αντιγράφων ασφαλείας</string>
+    <string name="berry_black_theme_title">Αμιγές μαύρο</string>
+    <string name="berry_black_theme_summary">Αμιγές μαύρο παρασκήνιο για το σκοτεινό θέμα</string>
+    <string name="lineagelicense_title">Νομικές πληροφορίες LineageOS</string>
+    <string name="device_info_protected_single_press">Πατήστε για εμφάνιση πληροφοριών</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Απομένει <xliff:g id="step_count">%1$d</xliff:g> βήμα για να ενεργοποιήσετε τις ρυθμίσεις για προγραμματιστές.</item>
+        <item quantity="other">Απομένουν <xliff:g id="step_count">%1$d</xliff:g> βήματα για να ενεργοποιήσετε τις ρυθμίσεις για προγραμματιστές.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ενεργοποιήσατε τις ρυθμίσεις για προγραμματιστές!</string>
+    <string name="show_dev_already_cm">Δεν χρειάζεται, έχετε ήδη ενεργοποιήσει τις ρυθμίσεις για προγραμματιστές.</string>
+    <string name="peak_refresh_rate_summary_custom">Αυξάνει αυτόματα τον ρυθμό ανανέωσης από τα 60 στα %1$d Hz για ορισμένο περιεχόμενο. Αυξάνει τη χρήση της μπαταρίας.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Πατήστε για αναστολή</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Πατήστε δύο φορές στη γραμμή κατάστασης ή την οθόνη κλειδώματος για αναστολή της συσκευής</string>
+    <string name="high_touch_polling_rate_title">Υψηλός ρυθμός ανάγνωσης αφής</string>
+    <string name="high_touch_polling_rate_summary">Αύξηση της ταχύτητας ανάγνωσης της αφής</string>
+    <string name="heads_up_notifications_enabled_title">Αναδυόμενες ειδοποιήσεις</string>
+    <string name="heads_up_notifications_enabled_summary">Εμφάνιση ειδοποιήσεων προτεραιότητας σε ένα μικρό αιωρούμενο παράθυρο</string>
+    <string name="high_touch_sensitivity_title">Υψηλή ευαισθησία αφής</string>
+    <string name="high_touch_sensitivity_summary">Αύξηση της ευαισθησίας της οθόνης αφής έτσι ώστε να μπορεί να χρησιμοποιηθεί φορώντας γάντια</string>
+    <string name="tethering_allow_vpn_upstreams_title">Επιτρέψτε στους πελάτες να χρησιμοποιούν VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Επιτρέψτε στους πελάτες σημείου πρόσβασης να χρησιμοποιούν τις συνδέσεις VPN αυτής της συσκευής για σύνδεση upstream</string>
+    <string name="increasing_ring_volume_option_title">Αυξανόμενη ένταση κουδουνίσματος</string>
+    <string name="increasing_ring_min_volume_title">Αρχική ένταση</string>
+    <string name="increasing_ring_ramp_up_time_title">Χρονικό διάστημα αύξησης</string>
+    <string name="lockscreen_media_art_title">Προβολή εξώφυλλου άλμπουμ</string>
+    <string name="lock_settings_picker_pattern_size_message">Επιλέξτε ένα μέγεθος μοτίβου</string>
+    <string name="lockpattern_settings_enable_error_path_title">Εμφάνιση λάθος μοτίβου</string>
+    <string name="lockpattern_settings_enable_dots_title">Εμφάνιση τελειών μοτίβου</string>
+    <string name="max_refresh_rate_title">Μέγιστος ρυθμός ανανέωσης</string>
+    <string name="min_refresh_rate_title">Ελάχιστος ρυθμός ανανέωσης</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο εμπρόσθιο μέρος του τάμπλετ σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο εμπρόσθιο μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο εμπρόσθιο μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πίσω μέρος του τάμπλετ σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πίσω μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πίσω μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πλάι του τάμπλετ σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πλάι της συσκευής σας.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Εντοπίστε τον αισθητήρα δακτυλικού αποτυπώματος στο πλάι του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Αγγίξτε τον αισθητήρα στο εμπρόσθιο μέρος του tablet σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Αγγίξτε τον αισθητήρα στο εμπρόσθιο μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Αγγίξτε τον αισθητήρα στο εμπρόσθιο μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Αγγίξτε τον αισθητήρα στο πίσω μέρος του tablet σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Αγγίξτε τον αισθητήρα στο πίσω μέρος της συσκευής σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Αγγίξτε τον αισθητήρα στο πίσω μέρος του τηλεφώνου σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Αγγίξτε τον αισθητήρα στο πλάι του tablet σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Αγγίξτε τον αισθητήρα στο πλάι της συσκευής σας.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Αγγίξτε τον αισθητήρα στο πλάι του τηλεφώνου σας.</string>
+    <string name="show_navbar_hint_title">Υπόδειξη πλοήγησης</string>
+    <string name="show_navbar_hint_summary">Εμφάνιση γραμμής υπόδειξης πλοήγησης στο κάτω μέρος της οθόνης</string>
+    <string name="app_notification_sound_timeout_title">Ελάχιστος χρόνος μεταξύ ήχων ειδοποίησης</string>
+    <string name="app_notification_sound_timeout_summary_template">Να επιτρέπονται ήχοι ή δονήσεις όχι περισσότερο από μία φορά κάθε <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Χωρίς περιορισμό</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 δευτερόλεπτα</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 δευτερόλεπτα</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 λεπτό</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 λεπτά</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 λεπτά</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 λεπτά</string>
+    <string name="auto_brightness_one_shot_title">Αυτόματη φωτεινότητα με μία λήψη</string>
+    <string name="auto_brightness_one_shot_summary">Η ρύθμιση φωτεινότητας θα πραγματοποιηθεί μόνο τη στιγμή που ενεργοποιείται η οθόνη</string>
+    <string name="data_usage_app_restrict_all">Να επιτρέπεται η πρόσβαση στο δίκτυο</string>
+    <string name="data_usage_app_restrict_all_summary">Ενεργοποίηση χρήσης δικτύου</string>
+    <string name="data_usage_app_restrict_mobile">Δεδομένα κινητής τηλεφωνίας</string>
+    <string name="data_usage_app_restrict_mobile_summary">Ενεργοποίηση χρήσης δεδομένων κινητής τηλεφωνίας</string>
+    <string name="data_usage_app_restrict_vpn">Δεδομένα VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Ενεργοποίηση χρήσης δεδομένων VPN</string>
+    <string name="data_usage_app_restrict_wifi">Δεδομένα Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Ενεργοποίηση χρήσης δεδομένων Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Ανακάτεμα διάταξης</string>
+    <string name="unlock_scramble_pin_layout_summary">Ανακάτεμα της διάταξης PIN κατά το ξεκλείδωμα της συσκευής</string>
+    <string name="proximity_wake_title">Πρόληψη ακούσιας αφύπνισης</string>
+    <string name="proximity_wake_summary">Έλεγχος του αισθητήρα εγγύτητας πριν την αφύπνιση της οθόνης</string>
+    <string name="touchscreen_gesture_settings_title">Χειρονομίες αφής</string>
+    <string name="touchscreen_gesture_settings_summary">Εκτελέστε διάφορες χειρονομίες αφής για γρήγορες ενέργειες</string>
+    <string name="touchscreen_hovering_title">Αιώρηση οθόνης αφής</string>
+    <string name="touchscreen_hovering_summary">Σας επιτρέπει να αιωρείτε πάνω από την οθόνη όπως ένα ποντίκι σε προγράμματα περιήγησης στο web, απομακρυσμένες επιφάνειες εργασίας, κλπ</string>
+    <string name="wake_when_plugged_or_unplugged_title">Αφύπνιση κατά τη σύνδεση</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ενεργοποίηση της οθόνης κατά την σύνδεση ή αποσύνδεση μιας πηγής ισχύος</string>
+    <string name="fast_charging_title">Γρήγορη φόρτιση</string>
+    <string name="fast_charging_summary">Απενεργοποιήστε για να μειώσετε τη θερμότητα που παράγεται από τη συσκευή κατά τη φόρτιση ή για να επεκτείνετε τη διάρκεια ζωής της μπαταρίας</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων για να ξεκλειδώσετε το τηλέφωνο</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων για να ξεκλειδώσετε το tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων για να ξεκλειδώσετε τη συσκευή</string>
+    <string name="ambient_display_screen_off_udfps_summary">Για να ενεργοποιηθεί η οθόνη σας και να ξεκλειδώσετε, πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων κάτω από την οθόνη.</string>
+    <string name="storage_warning_internal">Προειδοποίηση: Αυτή η επιλογή μπορεί να μη λειτουργήσει σωστά ή να οδηγήσει σε απώλεια δεδομένων και επομένως δε συνιστάται!</string>
+</resources>
diff --git a/res/values-en-rAU/cm_strings.xml b/res/values-en-rAU/cm_strings.xml
new file mode 100644
index 0000000..aa1e767
--- /dev/null
+++ b/res/values-en-rAU/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+</resources>
diff --git a/res/values-en-rCA/cm_strings.xml b/res/values-en-rCA/cm_strings.xml
new file mode 100644
index 0000000..aa1e767
--- /dev/null
+++ b/res/values-en-rCA/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+</resources>
diff --git a/res/values-en-rGB/cm_strings.xml b/res/values-en-rGB/cm_strings.xml
new file mode 100644
index 0000000..aa1e767
--- /dev/null
+++ b/res/values-en-rGB/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+</resources>
diff --git a/res/values-en-rIN/cm_strings.xml b/res/values-en-rIN/cm_strings.xml
new file mode 100644
index 0000000..aa1e767
--- /dev/null
+++ b/res/values-en-rIN/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+    <string name="lineagelicense_title">LineageOS legal</string>
+    <string name="device_info_protected_single_press">Tap to show info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+</resources>
diff --git a/res/values-es-rUS/cm_strings.xml b/res/values-es-rUS/cm_strings.xml
new file mode 100644
index 0000000..ac18174
--- /dev/null
+++ b/res/values-es-rUS/cm_strings.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Depuración como Superusuario</string>
+    <string name="adb_enable_summary_root">Permitir ejecutar la depuración de Android como superusuario</string>
+    <string name="berry_black_theme_title">Negro puro</string>
+    <string name="lineagelicense_title">Licencia de LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Estás a <xliff:g id="step_count">%1$d</xliff:g> paso de activar los ajustes de desarrollo.</item>
+        <item quantity="other">Estás a <xliff:g id="step_count">%1$d</xliff:g> pasos de activar los ajustes de desarrollo.</item>
+    </plurals>
+    <string name="show_dev_on_cm">¡Has activado los ajustes de desarrollo!</string>
+    <string name="show_dev_already_cm">No es necesario. Los ajustes de desarrollo ya están activos.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumentar automáticamente la frecuencia de actualización de 60 Hz a %1$d Hz para cierto contenido. Incrementa el uso de batería</string>
+    <string name="status_bar_double_tap_to_sleep_title">Pulsar para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Pulsa dos veces en la barra de estado o en la pantalla de bloqueo para apagar la pantalla</string>
+    <string name="heads_up_notifications_enabled_title">Notificaciones emergentes</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar notificaciones prioritarias en una pequeña ventana flotante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidad táctil</string>
+    <string name="high_touch_sensitivity_summary">Aumentar la sensibilidad del panel táctil para que pueda usarse con guantes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir a los clientes usar VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir a los clientes de hotspot usar las conexiones VPN de este dispositivo\u2019 como conectividad principal</string>
+    <string name="increasing_ring_volume_option_title">Volumen de tono ascendente</string>
+    <string name="increasing_ring_min_volume_title">Volumen de inicio</string>
+    <string name="increasing_ring_ramp_up_time_title">Tiempo de incremento</string>
+    <string name="lockscreen_media_art_title">Mostrar portada del álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Elija un tamaño de patrón</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar patrón erróneo</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar puntos de patrón</string>
+    <string name="show_navbar_hint_title">Sugerencia de navegación</string>
+    <string name="app_notification_sound_timeout_title">Tiempo mínimo entre los sonidos de notificación</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir sonidos o vibraciones no más de una vez cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sin restricción</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_all">Permitir acceso a la red</string>
+    <string name="data_usage_app_restrict_all_summary">Habilitar el uso de red</string>
+    <string name="data_usage_app_restrict_vpn">Datos de VPN</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activar el uso de datos Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
+    <string name="unlock_scramble_pin_layout_summary">Cambiar la disposición de los números del PIN para desbloquear el dispositivo</string>
+    <string name="proximity_wake_title">Prevenir encendido accidental</string>
+    <string name="proximity_wake_summary">Comprobar el sensor de proximidad antes de encender la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Gestos de pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Realizar varios gestos en la pantalla para acciones rápidas</string>
+    <string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
+    <string name="touchscreen_hovering_summary">Permite deslizarse por la pantalla como un ratón en navegadores, escritorios remotos, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Encender al conectar el cargador</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Encender la pantalla al conectar o desconectar el cargador</string>
+    <string name="fast_charging_title">Carga rápida</string>
+    <string name="fast_charging_summary">Desactivar para reducir el calor producido por el dispositivo mientras se carga o para extender la duración de la batería</string>
+</resources>
diff --git a/res/values-es/cm_strings.xml b/res/values-es/cm_strings.xml
new file mode 100644
index 0000000..31f97a3
--- /dev/null
+++ b/res/values-es/cm_strings.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Depuración como Superusuario</string>
+    <string name="adb_enable_summary_root">Permitir ejecutar la depuración de Android como Superusuario</string>
+    <string name="backup_transport_setting_label">Cambiar proveedor de la copia de seguridad</string>
+    <string name="backup_transport_title">Seleccionar el proveedor de la copia de seguridad</string>
+    <string name="berry_black_theme_title">Negro puro</string>
+    <string name="berry_black_theme_summary">Fondo negro puro para el tema oscuro</string>
+    <string name="lineagelicense_title">Licencia de LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ahora estás a <xliff:g id="step_count">%1$d</xliff:g> paso de habilitar las opciones de desarrollo.</item>
+        <item quantity="other">Ahora estás a <xliff:g id="step_count">%1$d</xliff:g> pasos de habilitar las opciones de desarrollo.</item>
+    </plurals>
+    <string name="show_dev_on_cm">¡Has activado los ajustes de desarrollo!</string>
+    <string name="show_dev_already_cm">No es necesario. Las opciones de desarrollo ya están activadas.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automáticamente la frecuencia de actualización de 60 a %1$d Hz en determinados tipos de contenido. Se usará más batería.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Pulsar para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Doble toque en la barra de estado o pantalla de bloqueo para apagar la pantalla</string>
+    <string name="heads_up_notifications_enabled_title">Notificaciones emergentes</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar las notificaciones prioritarias en una pequeña ventana flotante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidad táctil</string>
+    <string name="high_touch_sensitivity_summary">Incrementar la sensibilidad del panel táctil para que pueda usarse llevando guantes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir a los clientes usar VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir a los clientes de hotspot usar las conexiones VPN de este dispositivo\u2019 como conectividad principal</string>
+    <string name="increasing_ring_volume_option_title">Volumen de timbre ascendente</string>
+    <string name="increasing_ring_min_volume_title">Volumen inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Tiempo de incremento</string>
+    <string name="lockscreen_media_art_title">Mostrar portada del álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Elije un tamaño de patrón</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar patrón erróneo</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar puntos de patrón</string>
+    <string name="show_navbar_hint_title">Sugerencia de navegación</string>
+    <string name="show_navbar_hint_summary">Mostrar barra de sugerencias de navegación en la parte inferior de la pantalla</string>
+    <string name="app_notification_sound_timeout_title">Tiempo mínimo entre sonidos de notificaciones</string>
+    <string name="app_notification_sound_timeout_summary_template">Permite sonidos o vibraciones no más de una vez cada <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sin restricción</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_all">Permitir acceso a la red</string>
+    <string name="data_usage_app_restrict_all_summary">Habilitar uso de red</string>
+    <string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
+    <string name="unlock_scramble_pin_layout_summary">Cambiar la disposición de los números del PIN para desbloquear el dispositivo</string>
+    <string name="proximity_wake_title">Prevenir encendido accidental</string>
+    <string name="proximity_wake_summary">Comprobar el sensor de proximidad antes de encender la pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Gestos en pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Realizar varios gestos en la pantalla para acciones rápidas</string>
+    <string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
+    <string name="touchscreen_hovering_summary">Te permitirá deslizar por la pantalla como un ratón en navegadores, escritorios remotos, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Encender al conectar el cargador</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Encender la pantalla al conectar o desconectar el cargador</string>
+</resources>
diff --git a/res/values-et/cm_strings.xml b/res/values-et/cm_strings.xml
new file mode 100644
index 0000000..58a9733
--- /dev/null
+++ b/res/values-et/cm_strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Lisad</string>
+    <string name="advanced_keyboard_settings_title">Täpsemad seaded</string>
+    <string name="adb_enable_root">Juurkasutajaga silumine</string>
+    <string name="adb_enable_summary_root">Luba Androidi silumist juurkasutajaga</string>
+    <string name="backup_transport_setting_label">Muuda varunduste pakkujat</string>
+    <string name="backup_transport_title">Vali varunduste pakkuja</string>
+    <string name="berry_black_theme_title">Täiesti must</string>
+    <string name="berry_black_theme_summary">Täiesti must taust tumeda teema jaoks</string>
+    <string name="lineagelicense_title">LineageOS juriidiline info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Olete <xliff:g id="step_count">%1$d</xliff:g> sammu kaugusel arendussätete lubamisest.</item>
+        <item quantity="other">Olete <xliff:g id="step_count">%1$d</xliff:g> sammu kaugusel arendussätete lubamisest.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Arendussätted aktiveeritud!</string>
+    <string name="show_dev_already_cm">Ei ole vaja, arendussätted juba aktiveeritud.</string>
+    <string name="peak_refresh_rate_summary_custom">Suurendab teatud sisu puhul värskendamissagedust 60 hertsilt %1$d hertsini. Akukasutus suureneb.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Koputa unerežiimiks</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Topeltkoputa olekuriba või lukustuskuva ekraani väljalülitamiseks</string>
+    <string name="heads_up_notifications_enabled_title">Hüpikmärguanded</string>
+    <string name="high_touch_sensitivity_title">Kõrge puutetundlikus</string>
+    <string name="high_touch_sensitivity_summary">Suurenda puuteekraani tundlikust, et saaksid seda kasutada kindaid kandes</string>
+    <string name="tethering_allow_vpn_upstreams_title">Luba klientidel kasutada VPN-e</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Luba kuumkoha klientidel kasutada selle seadme VPN-ühendusi ülesvoolu ühenduvuseks</string>
+    <string name="increasing_ring_volume_option_title">Kasvav helisemistugevus</string>
+    <string name="increasing_ring_min_volume_title">Lähtevaljusus</string>
+    <string name="increasing_ring_ramp_up_time_title">Käivitamisetapi aeg</string>
+    <string name="lockscreen_media_art_title">Näita meedia kaanepilti</string>
+    <string name="lockpattern_settings_enable_dots_title">Näita mustri punkte</string>
+    <string name="min_refresh_rate_title">Minimaalne värskendussagedus</string>
+    <string name="show_navbar_hint_title">Navigeerimise vihje</string>
+    <string name="show_navbar_hint_summary">Kuva navigeerimise vihjeriba ekraani allosas</string>
+    <string name="data_usage_app_restrict_all">Luba võrgujuurdepääs</string>
+    <string name="data_usage_app_restrict_all_summary">Luba võrgukasutus</string>
+    <string name="data_usage_app_restrict_mobile">Mobiilne andmeside</string>
+    <string name="data_usage_app_restrict_mobile_summary">Luba mobiilse andmeside kasutus</string>
+    <string name="data_usage_app_restrict_vpn">VPNi andmeside</string>
+    <string name="data_usage_app_restrict_vpn_summary">Lubage VPNi andmeside kasutus</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi andmeside</string>
+    <string name="data_usage_app_restrict_wifi_summary">Luba Wi\u2011Fi andmeside kasutus</string>
+    <string name="unlock_scramble_pin_layout_title">Segatud paigutus</string>
+    <string name="unlock_scramble_pin_layout_summary">Sega PIN paigutust seadme lahtilukustamisel</string>
+    <string name="proximity_wake_title">Väldi juhuslikku ärkamist</string>
+    <string name="proximity_wake_summary">Kontrolli lähedussensorit enne ekraani äratamist</string>
+    <string name="touchscreen_gesture_settings_title">Puuteekraani žestid</string>
+    <string name="touchscreen_gesture_settings_summary">Soorita mitmeid puuteekraani žeste kiirtoimingute teostamiseks</string>
+    <string name="touchscreen_hovering_title">Puuteekraani hõljumine</string>
+    <string name="touchscreen_hovering_summary">Lubab hõljuda ekraani kohal nagu hiirega veebilehitsejas, kaugtöölaual jne</string>
+    <string name="wake_when_plugged_or_unplugged_title">Ärka laadija ühendamisel</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Lülita ekraan sisse kui ühendatakse või eemaldatakse toite allikas</string>
+    <string name="fast_charging_title">Kiirlaadimine</string>
+</resources>
diff --git a/res/values-eu/cm_strings.xml b/res/values-eu/cm_strings.xml
new file mode 100644
index 0000000..d8c7dad
--- /dev/null
+++ b/res/values-eu/cm_strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS lizentzia</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Garatzaileen aukerak gaitzeko urrats <xliff:g id="step_count">%1$d</xliff:g>era zaude.</item>
+        <item quantity="other">Garatzaileen aukerak gaitzeko <xliff:g id="step_count">%1$d</xliff:g> urratsera zaude.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Garatzaileen aukerak gaitu dituzu!</string>
+    <string name="show_dev_already_cm">Ez da behar, aurretik gaitu dituzu garatzaileek aukerak.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatikoki igotzen du freskatze-abiadura 60 Hz-tik %1$d Hz-ra zenbait edukitarako. Bateria-erabilera luzatzen du.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Sakatu lokartzeko</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Sakatu birritan egoera-barra edo blokeo-pantaila pantaila itzaltzeko</string>
+    <string name="heads_up_notifications_enabled_title">Jakinarazpen flotatzaileak</string>
+    <string name="heads_up_notifications_enabled_summary">Bistaratu lehentasunezko jakinarazpenak leiho flotatzaile txiki batean</string>
+    <string name="high_touch_sensitivity_title">Ukipen sentsibilitate altua</string>
+    <string name="high_touch_sensitivity_summary">Areagotu pantailaren sentsibilitatea, eskularruekin erabilgarria izan dadin</string>
+    <string name="increasing_ring_volume_option_title">Dei doinu gorakorra</string>
+    <string name="increasing_ring_min_volume_title">Hasierako bolumena</string>
+    <string name="increasing_ring_ramp_up_time_title">Maldaren iraupena</string>
+    <string name="lockscreen_media_art_title">Bistaratu azalaren irudia</string>
+    <string name="lock_settings_picker_pattern_size_message">Aukeratu ereduaren tamaina</string>
+    <string name="lockpattern_settings_enable_error_path_title">Erakutsi eredu errorea</string>
+    <string name="lockpattern_settings_enable_dots_title">Erakutsi ereduaren puntuak</string>
+    <string name="app_notification_sound_timeout_title">Gutxieneko denbora jakinarazpen soinuen artean</string>
+    <string name="app_notification_sound_timeout_summary_template">Ez baimendu soinua edo bibrazioa aurrekotik denbora bat pasatu arte: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Mugarik gabe</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundo</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundo</string>
+    <string name="app_notification_sound_timeout_value_1_minute">minutu bat</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutu</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutu</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutu</string>
+    <string name="data_usage_app_restrict_vpn">VPN datuak</string>
+    <string name="data_usage_app_restrict_vpn_summary">Gaitu VPN datuen erabilera</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi datuak</string>
+    <string name="data_usage_app_restrict_wifi_summary">Gaitu of Wi\u2011Fi datuen erabilera</string>
+    <string name="unlock_scramble_pin_layout_title">Zorizko diseinua</string>
+    <string name="unlock_scramble_pin_layout_summary">PIN zenbakiaren antolaketa nahastu gailua desblokeatzean</string>
+    <string name="proximity_wake_title">Eragotzi ustekabeko esnatzea</string>
+    <string name="proximity_wake_summary">Kontsultatu gertutasun sentsorea pantaila piztu baino lehen</string>
+    <string name="touchscreen_gesture_settings_title">Ukitze-pantailaren keinuak</string>
+    <string name="touchscreen_gesture_settings_summary">Egin ukimen-pantailako keinuak ekintza azkarretarako</string>
+    <string name="touchscreen_hovering_title">Pantailaren gainetik pasatu</string>
+    <string name="touchscreen_hovering_summary">Sagua bailitzan pantailaren gainetik pasatzea ahalbidetzen dizu, nabigatzaileetan, urruneko mahaigainetan, eta abar</string>
+    <string name="wake_when_plugged_or_unplugged_title">Esnatu kargadorearekin</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Piztu pantaila kargadorea konektatu edo deskonektatzean</string>
+</resources>
diff --git a/res/values-fa/cm_strings.xml b/res/values-fa/cm_strings.xml
new file mode 100644
index 0000000..233916f
--- /dev/null
+++ b/res/values-fa/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">موارد حقوقی سایانوژن‌مود</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">شما اکنون <xliff:g id="step_count">%1$d</xliff:g> ضربه با فعال‌سازی ابزارهای توسعه فاصله دارید.</item>
+        <item quantity="other">شما اکنون <xliff:g id="step_count">%1$d</xliff:g> ضربه با فعال‌سازی ابزارهای توسعه فاصله دارید.</item>
+    </plurals>
+    <string name="show_dev_on_cm">شما ابزارهای توسعه را فعال کرده‌اید!</string>
+    <string name="show_dev_already_cm">نیازی نیست، ابزارهای توسعه قبلا فعال شده‌اند.</string>
+    <string name="peak_refresh_rate_summary_custom">به‌طور خودکار سرعت بازخوانی را برای بعضی محتواها، از ۶۰ هرتز تا ۹۰ هرتز بالا می‌برد. مصرف باتری را افزایش می‌دهد.</string>
+    <string name="high_touch_sensitivity_title">حساسیت بالا به لمس</string>
+    <string name="high_touch_sensitivity_summary">افزایش حساسیت صفحه به لمس تا هنگام پوشیدن دستکش نیز قابل استفاده باشد</string>
+    <string name="increasing_ring_volume_option_title">صدای صعودی زنگ</string>
+    <string name="increasing_ring_min_volume_title">میزان صدا هنگام شروع</string>
+    <string name="increasing_ring_ramp_up_time_title">زمان افزایش صدا</string>
+    <string name="lockpattern_settings_enable_error_path_title">نمایش الگوی نادرست</string>
+    <string name="lockpattern_settings_enable_dots_title">نمایش نقطه‌های الگو</string>
+    <string name="unlock_scramble_pin_layout_title">چینش درهم</string>
+    <string name="unlock_scramble_pin_layout_summary">چینش درهم پین هنگام باز کردن قفل دستگاه</string>
+    <string name="proximity_wake_title">جلوگیری از بیدار شدن تصادفی</string>
+    <string name="touchscreen_hovering_title">لمس شناور صفحه</string>
+    <string name="touchscreen_hovering_summary">به شما اجازه می‌دهد مانند عملکرد ماوس در مرورگرهای وب، ریموت دسکتاپ و غیره، صفحه نمایش را به صورت شناور کنترل کنید</string>
+    <string name="wake_when_plugged_or_unplugged_title">بیدار شدن هنگام اتصال به برق</string>
+    <string name="wake_when_plugged_or_unplugged_summary">روشن شدن صفحه هنگام اتصال یا قطع اتصال منبع برق</string>
+</resources>
diff --git a/res/values-fi/cm_strings.xml b/res/values-fi/cm_strings.xml
new file mode 100644
index 0000000..57a44b6
--- /dev/null
+++ b/res/values-fi/cm_strings.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ekstrat</string>
+    <string name="advanced_keyboard_settings_title">Lisäasetukset</string>
+    <string name="adb_enable_root">Vianetsintä root-tilassa</string>
+    <string name="adb_enable_summary_root">Sallii Androidin virheenkorjauksen root-tilassa</string>
+    <string name="backup_transport_setting_label">Vaihda varmuuskopiopalvelua</string>
+    <string name="backup_transport_title">Valitse varmuuskopiopalvelu</string>
+    <string name="berry_black_theme_title">Kokonaan musta</string>
+    <string name="berry_black_theme_summary">Kokonaan musta tausta tummalle teemalle</string>
+    <string name="lineagelicense_title">LineageOSin lakiasiat</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Kehittäjäasetukset otetaan käyttöön <xliff:g id="step_count">%1$d</xliff:g> vaiheen päästä.</item>
+        <item quantity="other">Kehittäjäasetukset otetaan käyttöön <xliff:g id="step_count">%1$d</xliff:g> vaiheen päästä.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Kehittäjäasetukset ovat nyt käytössä!</string>
+    <string name="show_dev_already_cm">Olet jo ottanut kehittäjäasetukset käyttöön.</string>
+    <string name="peak_refresh_rate_summary_custom">Nostaa tietyn sisällön päivitysvälin automaattisesti 60 hertsistä %1$d:een. Lisää akun käyttöä.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Sammuta näyttö napauttamalla</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Sulje laitteen näyttö tuplanapauttamalla tilapalkkia tai lukitusnäyttöä</string>
+    <string name="heads_up_notifications_enabled_title">Leijuvat ilmoitukset</string>
+    <string name="heads_up_notifications_enabled_summary">Näytä tärkeät ilmoitukset pienessä kelluvassa ikkunassa</string>
+    <string name="high_touch_sensitivity_title">Korkea kosketusherkkyys</string>
+    <string name="high_touch_sensitivity_summary">Lisää kosketusnäytön herkkyyttä käyttääksesi laitetta käsineiden kanssa</string>
+    <string name="tethering_allow_vpn_upstreams_title">Salli laitteiden käyttää VPN:ää</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Salli hotspot-yhteyksien kayttää tämän laitteen VPN-yhteyksiä yhteyden muodostamiseen</string>
+    <string name="increasing_ring_volume_option_title">Voimistuva soittoääni</string>
+    <string name="increasing_ring_min_volume_title">Aloitusvoimakkuus</string>
+    <string name="increasing_ring_ramp_up_time_title">Nousun aika</string>
+    <string name="lockscreen_media_art_title">Näytä median kansikuva</string>
+    <string name="lock_settings_picker_pattern_size_message">Valitse ruudukon koko</string>
+    <string name="lockpattern_settings_enable_error_path_title">Näytä kuvion virhe</string>
+    <string name="lockpattern_settings_enable_dots_title">Näytä kuvion pisteet</string>
+    <string name="min_refresh_rate_title">Minimi virkistystaajuus</string>
+    <string name="show_navbar_hint_title">Alapalkki</string>
+    <string name="show_navbar_hint_summary">Näytä alapalkki näytön alareunassa</string>
+    <string name="app_notification_sound_timeout_title">Vähimmäisväli ilmoitusäänissä</string>
+    <string name="app_notification_sound_timeout_summary_template">Sallii äänen tai värinän vain seuraavin välein: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Ei rajoitusta</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekuntia</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekuntia</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuutti</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuuttia</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuuttia</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuuttia</string>
+    <string name="data_usage_app_restrict_all">Salli verkkoyhteys</string>
+    <string name="data_usage_app_restrict_all_summary">Ota verkkoyhteys käyttöön</string>
+    <string name="data_usage_app_restrict_mobile">Mobiilitiedonsiirto</string>
+    <string name="data_usage_app_restrict_mobile_summary">Ota mobiilidata käyttöön</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Ota käyttöön VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Ota Wi\u2011Fi data käyttöön</string>
+    <string name="unlock_scramble_pin_layout_title">Sekoitettu asettelu</string>
+    <string name="unlock_scramble_pin_layout_summary">Sekoita PIN-numerot poistettaessa lukitusta</string>
+    <string name="proximity_wake_title">Estä herätys vahingossa</string>
+    <string name="proximity_wake_summary">Tarkista lähesyysanturi ennen laitteen herättämistä</string>
+    <string name="touchscreen_gesture_settings_title">Kosketusnäytön eleet</string>
+    <string name="touchscreen_gesture_settings_summary">Tee erilaisia kosketusnäytön eleitä käyttääksesi pikatoimintoja</string>
+    <string name="touchscreen_hovering_title">Kosketusnäytön leijunta</string>
+    <string name="touchscreen_hovering_summary">Sallii näytön leijuttamisen kuten hiiri selaimessa, etätyöpöytäyhteyksissä, jne.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Herää laturista</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Käynnistä näyttö kun virtalähde liitetään tai irrotetaan</string>
+    <string name="fast_charging_title">Pikalataus</string>
+    <string name="fast_charging_summary">Poista käytöstä vähentääksesi laitteen tuottamaa lämpöä latauksen aikana tai pidentääksesi akun käyttöikää</string>
+</resources>
diff --git a/res/values-fr-rCA/cm_strings.xml b/res/values-fr-rCA/cm_strings.xml
new file mode 100644
index 0000000..ab88f01
--- /dev/null
+++ b/res/values-fr-rCA/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Augmente automatiquement la fréquence d\'actualisation de 60 Hz à %1$d Hz pour certains contenus. Cette fonction sollicite davantage la pile de l\'appareil.</string>
+</resources>
diff --git a/res/values-fr/cm_strings.xml b/res/values-fr/cm_strings.xml
new file mode 100644
index 0000000..24f8672
--- /dev/null
+++ b/res/values-fr/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Paramètres avancés</string>
+    <string name="adb_enable_root">Débogage rooté</string>
+    <string name="adb_enable_summary_root">Autoriser le débogage Android en tant que root</string>
+    <string name="backup_transport_setting_label">Modifier le fournisseur de sauvegarde</string>
+    <string name="backup_transport_title">Sélectionner un fournisseur de sauvegarde</string>
+    <string name="berry_black_theme_title">Noir pur</string>
+    <string name="berry_black_theme_summary">Fond noir pur pour le thème sombre</string>
+    <string name="lineagelicense_title">Infos légales LineageOS</string>
+    <string name="device_info_protected_single_press">Appuyez pour afficher les informations</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étape de l\'activation des paramètres de développement.
+Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étapes de l\'activation des paramètres de développement.</item>
+        <item quantity="other">Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étapes de l\'activation des paramètres de développement.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Vous avez activé les paramètres de développement !</string>
+    <string name="show_dev_already_cm">Inutile, vous avez déjà activé les paramètres de développement.</string>
+    <string name="peak_refresh_rate_summary_custom">Augmente automatiquement le taux de rafraîchissement de 60 à %1$d Hz pour certains contenus. Accroît l\'utilisation de la batterie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Appuyer pour mettre en veille</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Appuyer deux fois sur la barre d\'état ou sur l\'écran de verrouillage pour éteindre l\'écran</string>
+    <string name="high_touch_polling_rate_title">Taux d\'échantillonnage tactile élevé</string>
+    <string name="high_touch_polling_rate_summary">Augmenter le taux d\'échantillonnage de l\'écran tactile</string>
+    <string name="heads_up_notifications_enabled_title">Notifications flottantes</string>
+    <string name="heads_up_notifications_enabled_summary">Afficher les notifications prioritaires dans une petite fenêtre de notification flottante</string>
+    <string name="high_touch_sensitivity_title">Haute sensibilité tactile</string>
+    <string name="high_touch_sensitivity_summary">Augmenter la sensibilité de l\'écran permettant ainsi le port de gants</string>
+    <string name="tethering_allow_vpn_upstreams_title">Autoriser les clients à utiliser des VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permettre aux clients de point d\'accès d\'utiliser les connexions VPN de cet appareil pour la connectivité en amont</string>
+    <string name="increasing_ring_volume_option_title">Sonnerie progressive</string>
+    <string name="increasing_ring_min_volume_title">Volume de démarrage</string>
+    <string name="increasing_ring_ramp_up_time_title">Durée de progression</string>
+    <string name="lockscreen_media_art_title">Afficher la couverture du média</string>
+    <string name="lock_settings_picker_pattern_size_message">Choisissez une taille de modèle</string>
+    <string name="lockpattern_settings_enable_error_path_title">Afficher l\'erreur de schéma</string>
+    <string name="lockpattern_settings_enable_dots_title">Afficher les points du schéma</string>
+    <string name="max_refresh_rate_title">Taux de rafraîchissement maximal</string>
+    <string name="min_refresh_rate_title">Taux de rafraîchissement minimum</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localisez le lecteur d\'empreintes digitales à l\'avant de votre tablette.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localisez le lecteur d\'empreintes digitales à l\'avant de votre appareil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localisez le lecteur d\'empreintes digitales à l\'avant de votre téléphone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre tablette.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre appareil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre téléphone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localisez le lecteur d\'empreintes digitales sur le côté de votre tablette.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localisez le lecteur d\'empreintes digitales sur le côté de votre appareil.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localisez le lecteur d\'empreintes digitales sur le côté de votre téléphone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touchez le capteur à l\'avant de votre tablette.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touchez le capteur à l\'avant de votre appareil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touchez le capteur à l\'avant de votre téléphone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touchez le capteur à l\'arrière de votre tablette.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touchez le capteur à l\'arrière de votre appareil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touchez le capteur à l\'arrière de votre téléphone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touchez le capteur sur le côté de votre tablette.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touchez le capteur sur le côté de votre appareil.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touchez le capteur sur le côté de votre téléphone.</string>
+    <string name="show_navbar_hint_title">Indice de navigation</string>
+    <string name="show_navbar_hint_summary">Afficher l\'indice de navigation en bas de l\'écran</string>
+    <string name="app_notification_sound_timeout_title">Temps minimum entre les sons de notification</string>
+    <string name="app_notification_sound_timeout_summary_template">Ne pas permettre plus d\'un son ou une vibration toutes les <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Aucune restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 secondes</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 secondes</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+    <string name="auto_brightness_one_shot_title">Luminosité automatique rapide</string>
+    <string name="auto_brightness_one_shot_summary">La luminosité ne s\'ajustera qu\'au moment où l\'écran s\'allume</string>
+    <string name="data_usage_app_restrict_all">Autoriser l\'accès au réseau</string>
+    <string name="data_usage_app_restrict_all_summary">Activer l\'utilisation du réseau</string>
+    <string name="data_usage_app_restrict_mobile">Données mobiles</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activer l\'utilisation des données mobiles</string>
+    <string name="data_usage_app_restrict_vpn">Données VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activer l\'utilisation des données VPN</string>
+    <string name="data_usage_app_restrict_wifi">Données Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activer l\'utilisation des données Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposition aléatoire</string>
+    <string name="unlock_scramble_pin_layout_summary">Disposer aléatoirement les touches lors du déverrouillage</string>
+    <string name="proximity_wake_title">Empêcher un réveil accidentel</string>
+    <string name="proximity_wake_summary">Vérifier le capteur de proximité avant d\'allumer l\'écran</string>
+    <string name="touchscreen_gesture_settings_title">Gestes tactiles</string>
+    <string name="touchscreen_gesture_settings_summary">Effectuer différents gestes tactiles pour des actions rapides</string>
+    <string name="touchscreen_hovering_title">Survol de l\'écran tactile</string>
+    <string name="touchscreen_hovering_summary">Permet de survoler l\'écran comme avec une souris dans les navigateurs web, les bureaux à distance, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Réveiller au branchement</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Allumer l\'écran lors du branchement ou du débranchement d\'une source d\'alimentation</string>
+    <string name="fast_charging_title">Charge rapide</string>
+    <string name="fast_charging_summary">Désactiver pour réduire la chaleur produite par l\'appareil pendant la charge ou pour prolonger la durée de vie de la batterie</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+    <string name="ambient_display_screen_off_udfps_summary">Pour allumer votre écran et le déverrouiller, appuyez longuement sur votre lecteur d\'empreinte digitale sous l\'écran.</string>
+    <string name="storage_warning_internal">Attention : Cette option peut ne pas fonctionner correctement ou entraîner une perte de données et n\'est donc pas recommandée !</string>
+</resources>
diff --git a/res/values-fur-rIT/cm_strings.xml b/res/values-fur-rIT/cm_strings.xml
new file mode 100644
index 0000000..7b89457
--- /dev/null
+++ b/res/values-fur-rIT/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Impostazions avanzadis</string>
+    <string name="adb_enable_root">Debug cun acès root</string>
+    <string name="adb_enable_summary_root">Permet la esecuzion dal debug di Android come root</string>
+    <string name="backup_transport_setting_label">Cambie gjestôr dai backups</string>
+    <string name="backup_transport_title">Selezione un gjestôr dai backups</string>
+    <string name="berry_black_theme_title">Neri pûr</string>
+    <string name="berry_black_theme_summary">Fonts neri pûr pal teme scûr</string>
+    <string name="lineagelicense_title">Notis legâls di LineageOS</string>
+    <string name="device_info_protected_single_press">Tocje par mostrâ informazions</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ti mancje <xliff:g id="step_count">%1$d</xliff:g> passaç par ativâ lis impostazions di disvilup.</item>
+        <item quantity="other">Ti mancjin <xliff:g id="step_count">%1$d</xliff:g> passaçs par ativâ lis impostazions di disvilup.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Tu âs abilitât lis impostazions di disvilup!</string>
+    <string name="show_dev_already_cm">Nol covente, tu âs za abilitât lis impostazions di disvilup.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumente in automatic la frecuence di inzornament di 60 a %1$d Hz par cualchi contignût. Al aumente il consum de batarie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocje par sospindi</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tocje dôs volti la sbare di stât o la schermade di sbloc par distudâ il schermi</string>
+    <string name="high_touch_polling_rate_title">Campionament des tocjadis a elevde frecuence</string>
+    <string name="high_touch_polling_rate_summary">Aumente la frecuence di campionament dal schermi tatil</string>
+    <string name="heads_up_notifications_enabled_title">Notifichis a comparse</string>
+    <string name="heads_up_notifications_enabled_summary">Visualize lis notifichis prioritaris intun piçul barcon flotant</string>
+    <string name="high_touch_sensitivity_title">Tocjade a alte sensibilitât</string>
+    <string name="high_touch_sensitivity_summary">Aumente la sensibilitât dal schermi tatil par podêlu doprâ cu lis manecis</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permet ai dispositîfs conetûts di doprâ lis VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permet ai dispositîfs conetûts al pont di acès di doprâ lis conessions VPN di chest dispositîf</string>
+    <string name="increasing_ring_volume_option_title">Sunarie incrementâl</string>
+    <string name="increasing_ring_min_volume_title">Volum iniziâl</string>
+    <string name="increasing_ring_ramp_up_time_title">Timp par aumentâ</string>
+    <string name="lockscreen_media_art_title">Mostre cuvierte album</string>
+    <string name="lock_settings_picker_pattern_size_message">Sielç la dimension de secuence</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostre erôr de secuence</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostre ponts de secuence</string>
+    <string name="max_refresh_rate_title">Frecuence di inzornament massime</string>
+    <string name="min_refresh_rate_title">Frecuence di inzornament minime</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Individue il sensôr di impronts digjitâi de bande anteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Individue il sensôr di impronts digjitâi de bande anteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Individue il sensôr di impronts digjitâi de bande anteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Individue il sensôr di impronts digjitâi de bande posteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Individue il sensôr di impronts digjitâi de bande posteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Individue il sensôr di impronts digjitâi de bande posteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Individue il sensôr di impronts digjitâi de bande laterâl dal to tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Individue il sensôr di impronts digjitâi de bande laterâl dal to dispositîf.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Individue il sensôr di impronts digjitâi de bande laterâl dal to telefon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tocje il sensôr de bande anteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tocjeil sensôr de bande anteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tocjeil sensôr de bande anteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tocje il sensôr de bande posteriôr dal to tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tocjeil sensôr de bande posteriôr dal to dispositîf.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tocjeil sensôr de bande posteriôr dal to telefon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tocje il sensôr de bande laterâl dal to tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tocjeil sensôr de bande laterâl dal to dispositîf.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tocjeil sensôr de bande laterâl dal to telefon.</string>
+    <string name="show_navbar_hint_title">Indicadôr navigazion</string>
+    <string name="show_navbar_hint_summary">Mostre l\'indicadôr di navigazion te part basse dal schermi</string>
+    <string name="app_notification_sound_timeout_title">Timp minim tra i suns des notifichis</string>
+    <string name="app_notification_sound_timeout_summary_template">Permet suns o vibrazions no plui di une volte ogni <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Nissune restrizion</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconts</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconts</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minût</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minûts</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minûts</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minûts</string>
+    <string name="auto_brightness_one_shot_title">Luminositât automatiche intun colp</string>
+    <string name="auto_brightness_one_shot_summary">La regolazion de luminositât e capitarà dome cuant che il schermi al ven ativât</string>
+    <string name="data_usage_app_restrict_all">Permet acès ae rêt</string>
+    <string name="data_usage_app_restrict_all_summary">Abilite l\'ûs de rêt</string>
+    <string name="data_usage_app_restrict_mobile">Dâts mobii</string>
+    <string name="data_usage_app_restrict_mobile_summary">Abilite l\'ûs dai dâts mobii</string>
+    <string name="data_usage_app_restrict_vpn">Dâts VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Abilte l\'ûs dai dâts VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dâts Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Abilite l\'ûs dai dâts Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Messede disposizion</string>
+    <string name="unlock_scramble_pin_layout_summary">Messede la disposizion de tastiere PIN pal sbloc dal dispositîf</string>
+    <string name="proximity_wake_title">Preven il disveâsi acidentâl</string>
+    <string name="proximity_wake_summary">Controle il sensôr di prossimitât prime di impiâ il schermi</string>
+    <string name="touchscreen_gesture_settings_title">Mots su schermi tatil</string>
+    <string name="touchscreen_gesture_settings_summary">Eseguìs varis mots su schermi tatic par fâ azions rapidis</string>
+    <string name="touchscreen_hovering_title">Schermi tatil a pontadôr</string>
+    <string name="touchscreen_hovering_summary">Permet di passâ parsore dal schermi come cuntun mouse intal navigadôr web, tai scritoris lontans e v.i.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Disvee al colegament</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Impie il schermi se e ven colegade o distacade une sorzint di alimentazion</string>
+    <string name="fast_charging_title">Ricjarie rapide</string>
+    <string name="fast_charging_summary">Disabilite par ridusi il calôr prodot dal dispositîf intant de ricjarie o par sprolungjâ la durade de batarie</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il telefon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il dispositîf</string>
+    <string name="ambient_display_screen_off_udfps_summary">Par impiâ il schermi e sblocâ il dispositîf, frache a dilunc sul sensôr di impronts digjitâi sot dal schermi.</string>
+    <string name="storage_warning_internal">Atenzion: cheste opzion e podarès no funzionâ ben o puartâ a pierditis di dâts e duncje no je conseade!</string>
+</resources>
diff --git a/res/values-fy-rNL/cm_strings.xml b/res/values-fy-rNL/cm_strings.xml
new file mode 100644
index 0000000..2ef2ded
--- /dev/null
+++ b/res/values-fy-rNL/cm_strings.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Root-debugging</string>
+    <string name="adb_enable_summary_root">Android-debugging as root tastean</string>
+    <string name="lineagelicense_title">Juridyske ynformaasje fan LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Jo binne noch <xliff:g id="step_count">%1$d</xliff:g> stap fan de opsjes foar ûntwikkelers.</item>
+        <item quantity="other">Jo binne noch <xliff:g id="step_count">%1$d</xliff:g> stappen fan de opsjes foar ûntwikkelers.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Jo hawwe de opsjes foar ûntwikkelers ynskeakele!</string>
+    <string name="show_dev_already_cm">Net nedich jo hawwe de opsjes foar ûntwikkelers al ynskeakele.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dûbeld tikke foar sliepstân</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dûbeld tikke op de steatbalke of beskoattelskerm om it skerm út te skeakeljen</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Prioriteitsmeldingen toane yn lyts swevend finster</string>
+    <string name="high_touch_sensitivity_title">Hege gefoelichheid oanreitsjen</string>
+    <string name="high_touch_sensitivity_summary">Gefoelichheid fan it skerm ferheegje, sadat it betsjinne wurde kin mei wanten</string>
+    <string name="tethering_allow_vpn_upstreams_title">Clients tastean om VPN\'s te brûken</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Hotspot-brûkers tastean om de VPN-ferbiningen fan dit apparaat te brûken om te uploaden</string>
+    <string name="increasing_ring_volume_option_title">Tanimmend belfolume</string>
+    <string name="increasing_ring_min_volume_title">Startfolume</string>
+    <string name="increasing_ring_ramp_up_time_title">Opheechtiid</string>
+    <string name="lockscreen_media_art_title">Albumhoezen toane</string>
+    <string name="lock_settings_picker_pattern_size_message">Grutte patroan kieze</string>
+    <string name="lockpattern_settings_enable_error_path_title">Patroanflater toane</string>
+    <string name="lockpattern_settings_enable_dots_title">Patroanknoppen toane</string>
+    <string name="app_notification_sound_timeout_title">Minimale tiid tusken meldingslûden</string>
+    <string name="app_notification_sound_timeout_summary_template">Lûd of trillen net mear as ien kear yn de <xliff:g id="duration">%1$s</xliff:g> tastean</string>
+    <string name="app_notification_sound_timeout_value_none">Gjin beheining</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekonden</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekonden</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minút</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuten</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuten</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuten</string>
+    <string name="data_usage_app_restrict_vpn">VPN-gegevens</string>
+    <string name="data_usage_app_restrict_vpn_summary">Tagong ta VPN-gegevens tastean</string>
+    <string name="data_usage_app_restrict_wifi">Gegevens fia wifi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Gebrûk fan gegevens fia wifi ynskeakelje</string>
+    <string name="unlock_scramble_pin_layout_title">Lay-out hutselje</string>
+    <string name="unlock_scramble_pin_layout_summary">Pin-lay-out troch inoar hutselje by apparaat ûntskoatteljen</string>
+    <string name="proximity_wake_title">Troch fersin wekker meitsje opkeare</string>
+    <string name="proximity_wake_summary">Tichtebysensor brûke foarôfgeand oan ûntweitsjen fan skerm</string>
+    <string name="touchscreen_gesture_settings_title">fingergebearen</string>
+    <string name="touchscreen_gesture_settings_summary">Skermgebearen brûke foar flugge aksjes</string>
+    <string name="touchscreen_hovering_title">Sweve boppe skerm</string>
+    <string name="touchscreen_hovering_summary">Mei jo finger boppe it skerm sweve, lykas in mûs yn browsers, buroblêd op ôfstân, ensfh.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wekker meitsjen troch lader</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Skerm oan by it oansluten of loskeppeljen fan in lader</string>
+</resources>
diff --git a/res/values-gd/cm_strings.xml b/res/values-gd/cm_strings.xml
new file mode 100644
index 0000000..75d3493
--- /dev/null
+++ b/res/values-gd/cm_strings.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Rudan a bharrachd</string>
+    <string name="advanced_keyboard_settings_title">Roghainnean adhartach</string>
+    <string name="adb_enable_root">Dì-bhugachadh root</string>
+    <string name="adb_enable_summary_root">Ceadaich gun dèid dì-bhugachadh Android a ruith ’na root</string>
+    <string name="backup_transport_setting_label">Atharraich solaraiche nan lethbhreacan-glèidhidh</string>
+    <string name="backup_transport_title">Tagh solaraiche nan lethbhreacan-glèidhidh</string>
+    <string name="berry_black_theme_title">Dubh</string>
+    <string name="berry_black_theme_summary">Cleachd cùlaibh dubh leis an ùrlar dhorcha</string>
+    <string name="lineagelicense_title">Sgrìobhainnean laghail LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Tha thu <xliff:g id="step_count">%1$d</xliff:g> cheum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+        <item quantity="two">Tha thu <xliff:g id="step_count">%1$d</xliff:g> cheum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+        <item quantity="few">Tha thu <xliff:g id="step_count">%1$d</xliff:g> ceuman air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+        <item quantity="other">Tha thu <xliff:g id="step_count">%1$d</xliff:g> ceum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Chuir thu roghainnean an luchd-leasachaidh an comas!</string>
+    <string name="show_dev_already_cm">Cha leig thu leas, chuir thu roghainnean an luchd-leasachaidh an comas mu thràth.</string>
+    <string name="peak_refresh_rate_summary_custom">Àrdaichidh seo reat an ath-nuadhachaidh o 60 gu %1$d Hz do chuid a shusbaint gu fèin-obrachail. Caithidh seo barrachd dhen bhataraidh.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Thoir gnogag airson cadal</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Thoir gnogag dhùbailte air bàr na staid no air an sgrìn-ghlasaidh gus an uidheam-taisbeanaidh a chur dheth</string>
+    <string name="heads_up_notifications_enabled_title">An aire</string>
+    <string name="heads_up_notifications_enabled_summary">Seall brathan le prìomhachas ann an uinneag bheag air fleòd</string>
+    <string name="high_touch_sensitivity_title">Mothalachd àrd air an t-suathadh</string>
+    <string name="high_touch_sensitivity_summary">Meudaich mothalachd na sgrìn-shuathaidh ach an gabh a cleachdadh le miotagan</string>
+    <string name="tethering_allow_vpn_upstreams_title">Leig le cliantan VPN a chleachdadh</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Thoir cead do chliantan hotspot gun cleachd iad ceanglaichean VPN an uidheim seo airson ceangal upstream a dhèanamh</string>
+    <string name="increasing_ring_volume_option_title">Cur an àirde fuaim na seirme</string>
+    <string name="increasing_ring_min_volume_title">Àirde na fuaime thòiseachail</string>
+    <string name="increasing_ring_ramp_up_time_title">Àm ramp-up</string>
+    <string name="lockscreen_media_art_title">Seall obair-ealain còmhdachaidh nam meadhanan</string>
+    <string name="lock_settings_picker_pattern_size_message">Tagh meud a’ phàtrain</string>
+    <string name="lockpattern_settings_enable_error_path_title">Seall mearachd a’ phàtrain</string>
+    <string name="lockpattern_settings_enable_dots_title">Seall dotagan a’ phàtrain</string>
+    <string name="max_refresh_rate_title">Bàrr tricead an ath-nuadhachaidh</string>
+    <string name="min_refresh_rate_title">Reat as lugha an ath-nuadhachaidh</string>
+    <string name="show_navbar_hint_title">Oidheam na seòladaireachd</string>
+    <string name="show_navbar_hint_summary">Seall bàr oidheam na seòladaireachd aig bonn na sgrìn</string>
+    <string name="app_notification_sound_timeout_title">An ùine as lugha eadar fuaimean bhrathan</string>
+    <string name="app_notification_sound_timeout_summary_template">Na ceadaich fuaim no brath nas trice na gach <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Gun chuingeachadh</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 diogan</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 diog</string>
+    <string name="app_notification_sound_timeout_value_1_minute">Mionaid</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 mionaidean</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 mionaidean</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">Leth-uair a thìde</string>
+    <string name="auto_brightness_one_shot_title">Soilleireachd fhèin-obrachail an aon losgaidh</string>
+    <string name="auto_brightness_one_shot_summary">Cha dèid gleus a chur air an t-soilleireachd ach aig an àm a thèid an sgrìn a chur air</string>
+    <string name="data_usage_app_restrict_all">Ceadaich inntrigeadh dhan lìonra</string>
+    <string name="data_usage_app_restrict_all_summary">Cuir an comas cleachdadh an lìonraidh</string>
+    <string name="data_usage_app_restrict_mobile">Dàta mobile</string>
+    <string name="data_usage_app_restrict_mobile_summary">Cuir an comas cleachdadh dàta mobile</string>
+    <string name="data_usage_app_restrict_vpn">Dàta VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Cuir an comas cleachdadh dàta VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dàta WiFi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Cuir an comas cleachdadh dàta WiFi</string>
+    <string name="unlock_scramble_pin_layout_title">Cuir a’ cho-dhealbhachd tro chèile</string>
+    <string name="unlock_scramble_pin_layout_summary">Cuir co-dhealbhachd a’ PIN tro chèile nuair a bheirear a’ ghlas far an uidheim</string>
+    <string name="proximity_wake_title">Caisg dùsgadh air mhearachd</string>
+    <string name="proximity_wake_summary">Dearbh le mothaichear na fagasachd mus dèid an sgrìn a dhùsgadh</string>
+    <string name="touchscreen_gesture_settings_title">Gluasadan na sgrìn-shuathaidh</string>
+    <string name="touchscreen_gesture_settings_summary">Cleachd gluasadan sgrìn-shuathaidh airson gnìomhan luatha</string>
+    <string name="touchscreen_hovering_title">Fantainn os cionn na sgrìn</string>
+    <string name="touchscreen_hovering_summary">Bheir seo comas dhut fantainn os cionn na sgrìn, mar luchag ann am brabhsairean-lìn, desktops cèin is msaa</string>
+    <string name="wake_when_plugged_or_unplugged_title">Dùisg nuair a cheanglar ri bun-dealain</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Cuir an sgrìn air nuair a thèid tùs cumhachd a cheangal ris no a dhì-cheangal</string>
+    <string name="fast_charging_title">Teàirrdseadh luath</string>
+    <string name="fast_charging_summary">Cuir à comas e ach nach adhbharaich an t-uidheam uiread de theas nuair a bhios e ’ga theàirrdseadh no ach am mair am bataraidh nas fhaide</string>
+</resources>
diff --git a/res/values-gl/cm_strings.xml b/res/values-gl/cm_strings.xml
new file mode 100644
index 0000000..2b46e68
--- /dev/null
+++ b/res/values-gl/cm_strings.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Configuración avanzada</string>
+    <string name="adb_enable_root">Depuración como root</string>
+    <string name="adb_enable_summary_root">Permitir executar a depuración de Android como root</string>
+    <string name="backup_transport_setting_label">Trocar provedor de copias de seguranza</string>
+    <string name="backup_transport_title">Seleccionar provedor de copias de seguranza</string>
+    <string name="berry_black_theme_title">Negro puro</string>
+    <string name="berry_black_theme_summary">Fondo negro puro para o tema escuro</string>
+    <string name="lineagelicense_title">Licenza de LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Está a <xliff:g id="step_count">%1$d</xliff:g> paso de activar a configuración de desenvolvemento.</item>
+        <item quantity="other">Está a <xliff:g id="step_count">%1$d</xliff:g> pasos de activar a configuración de desenvolvemento.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Activou a configuración de desenvolvemento!</string>
+    <string name="show_dev_already_cm">Non fai falla, a configuración de desenvolvemento xa están activa.</string>
+    <string name="peak_refresh_rate_summary_custom">Incrementa automaticamente a frecuencia de actualización de 60 a %1$d Hz en determinados tipos de contido. Aumenta o uso da batería.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocar para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Duplo toque na barra de estado ou na pantalla de bloqueo para apagar a pantalla</string>
+    <string name="heads_up_notifications_enabled_title">Notificacións emerxentes</string>
+    <string name="heads_up_notifications_enabled_summary">Amosar notificacions de prioridad nunha pequena xanela flotante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidade</string>
+    <string name="high_touch_sensitivity_summary">Aumentar a sensibilidade da pantalla para poder utilizalo con luvas</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir aos clientes usar VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permite aos clientes do punto de acceso usar as conexións VPN deste dispositivo como conexión principal</string>
+    <string name="increasing_ring_volume_option_title">Aumentando o volume de chamada</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+    <string name="lockscreen_media_art_title">Amosar a portada do álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Escolle un tamaño para o patrón</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar erro do padrón</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar puntos do padrón</string>
+    <string name="max_refresh_rate_title">Taxa de actualización máxima</string>
+    <string name="min_refresh_rate_title">Taxa mínima de actualización </string>
+    <string name="show_navbar_hint_title">Suxerencia de navegación</string>
+    <string name="show_navbar_hint_summary">Amosar barra de suxestións de navegación na parte inferior da pantalla</string>
+    <string name="app_notification_sound_timeout_title">Tempo mínimo entre os sons das notificacións</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir os sons ou vibración non máis dunha vez cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sen restrición</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="auto_brightness_one_shot_title">Brillo automático ao encender a pantalla</string>
+    <string name="auto_brightness_one_shot_summary">O axuste do brillo ocorrerá só no momento en que a pantalla for encendida</string>
+    <string name="data_usage_app_restrict_all">Permitir acceso á rede</string>
+    <string name="data_usage_app_restrict_all_summary">Habilitar uso da rede</string>
+    <string name="data_usage_app_restrict_mobile">Datos móbiles</string>
+    <string name="data_usage_app_restrict_mobile_summary">Activar o uso dos datos móbiles</string>
+    <string name="data_usage_app_restrict_vpn">Datos VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activar o uso de datos por VPN</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Activar o uso dos datos Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
+    <string name="unlock_scramble_pin_layout_summary">Cambiar a disposición dos números do PIN para desbloquear o dispositivo</string>
+    <string name="proximity_wake_title">Previr acender de forma accidental</string>
+    <string name="proximity_wake_summary">Comprobar o sensor de proximidade antes de acender a pantalla</string>
+    <string name="touchscreen_gesture_settings_title">Xestos na pantalla táctil</string>
+    <string name="touchscreen_gesture_settings_summary">Realizar varios xestos na pantalla para accións rápidas</string>
+    <string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
+    <string name="touchscreen_hovering_summary">Permítelle utilizar o dedo coma un rato ao deslizalo en navegadores web, escritorios remotos, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Acender ao enchufar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Acende a pantalla ao contectarse e desconectarse dunha fonte de enerxía</string>
+    <string name="fast_charging_title">Carga rápida</string>
+    <string name="fast_charging_summary">Desactivar para reducir a calor producida polo dispositivo durante a súa carga ou para aumentar a vida útil da batería</string>
+</resources>
diff --git a/res/values-gu/cm_strings.xml b/res/values-gu/cm_strings.xml
new file mode 100644
index 0000000..41d2612
--- /dev/null
+++ b/res/values-gu/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS lકાયદાકીય</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">હવે તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરવાથી <xliff:g id="step_count">%1$d</xliff:g> પગલા દૂર છો.</item>
+        <item quantity="other">હવે તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરવાથી <xliff:g id="step_count">%1$d</xliff:g> પગલાં દૂર છો.</item>
+    </plurals>
+    <string name="show_dev_on_cm">તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કર્યું!</string>
+    <string name="show_dev_already_cm">જરૂર નથી, તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરી ચુક્યા છો.</string>
+    <string name="peak_refresh_rate_summary_custom">અમુક કન્ટેન્ટ માટે રિફ્રેશ થવાનો રેટ ઑટોમૅટિક રીતે 60થી વધારીને %1$d Hz કરે છે. બૅટરીનો વપરાશ વધારે છે.</string>
+    <string name="high_touch_sensitivity_title">ઉચ્ચ ટચ સંવેદનશીલતા</string>
+    <string name="high_touch_sensitivity_summary">ટચસ્ક્રીન સંવેદનશીલતા વધારો જેથી હાથમોજા પહેરીને તેનો ઉપયોગ થઈ શકે</string>
+    <string name="increasing_ring_volume_option_title">રિંગ વૉલ્યુમ વધારી રહ્યા છે</string>
+    <string name="increasing_ring_min_volume_title">શરૂઆતનું વૉલ્યુમ</string>
+    <string name="increasing_ring_ramp_up_time_title">રૅમ્પ-અપ સમય</string>
+    <string name="lockpattern_settings_enable_error_path_title">પૅટર્ન ખામી દર્શાવો</string>
+    <string name="lockpattern_settings_enable_dots_title">પૅટર્ન ડોટ્સ દર્શાવો</string>
+    <string name="unlock_scramble_pin_layout_title">લેઆઉટ આમતેમ કરો</string>
+    <string name="unlock_scramble_pin_layout_summary">ડિવાઇસ અનલૉક કરો ત્યારે PIN લેઆઉટ આમતેમ કરો</string>
+    <string name="proximity_wake_title">આકસ્મિક વેક અપ રોકો</string>
+    <string name="touchscreen_hovering_title">ટચસ્ક્રીન ભમવું</string>
+    <string name="touchscreen_hovering_summary">વેબ બ્રાઉઝરો, રિમોટ ડેસ્કટૉપ વગેરેમાં માઉસ હોય તે પ્રમાણે તમને સ્ક્રીન પર ભમતાં રહેવાની છૂટ આપે છે</string>
+    <string name="wake_when_plugged_or_unplugged_title">વેક ઑન પ્લગ</string>
+    <string name="wake_when_plugged_or_unplugged_summary">પાવર સ્ત્રોત જોડો અથવા પરવાનગીું પાડો ત્યારે સ્ક્રીન ચાલુ કરો</string>
+</resources>
diff --git a/res/values-hi/cm_strings.xml b/res/values-hi/cm_strings.xml
new file mode 100644
index 0000000..6e1d948
--- /dev/null
+++ b/res/values-hi/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">सियानोजेनमोड क़ानूनी</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">विकास सेटिंग को सक्षम करने के लिए अब सिर्फ़ <xliff:g id="step_count">%1$d</xliff:g> चरण बाकी है।</item>
+        <item quantity="other">विकास सेटिंग को सक्षम करने के लिए अब सिर्फ़ <xliff:g id="step_count">%1$d</xliff:g> चरण बाकी हैं।</item>
+    </plurals>
+    <string name="show_dev_on_cm">आपने विकास सेटिंग को सक्षम किया है!</string>
+    <string name="show_dev_already_cm">इसकी ज़रूरत नहीं है, आपने पहले ही विकास सेटिंग को सक्षम कर दिया है।</string>
+    <string name="peak_refresh_rate_summary_custom">कुछ कॉन्टेंट के लिए, यह अपने-आप ही रीफ़्रेश दर को 60 हर्ट्ज़ से बढ़ाकर %1$d हर्ट्ज़ कर देता है. इसमें बैटरी ज़्यादा खर्च होती है.</string>
+    <string name="high_touch_sensitivity_title">उच्च स्पर्श संवेदनशीलता</string>
+    <string name="high_touch_sensitivity_summary">स्पर्श स्क्रीन संवेदनशीलता को बढ़ाएँ ताकि दस्ताने पहने हुए हाथ से उसका उपयोग किया जा सके</string>
+    <string name="increasing_ring_volume_option_title">बढ़ता हुआ रिंगटोन वोल्यूम</string>
+    <string name="increasing_ring_min_volume_title">वोल्यूम को शुरू करें</string>
+    <string name="increasing_ring_ramp_up_time_title">समय को बढ़ाएँ</string>
+    <string name="lockpattern_settings_enable_error_path_title">पैटर्न त्रुटि दिखाएँ</string>
+    <string name="lockpattern_settings_enable_dots_title">पैटर्न बिंदु दिखाएँ</string>
+    <string name="unlock_scramble_pin_layout_title">विन्यास को बेतरतीब करें</string>
+    <string name="unlock_scramble_pin_layout_summary">उपकरण को अनलॉक करते समय पिन विन्यास को बेतरतीब कर दें</string>
+    <string name="proximity_wake_title">ग़लती से जगाए जाने को रोकें</string>
+    <string name="touchscreen_hovering_title">स्पर्श स्क्रीन मँडराना</string>
+    <string name="touchscreen_hovering_summary">यह आपको वेब ब्राउसरों, दूरस्थ डेस्कटॉपों, आदि में स्क्रीन को माउस की तरह मँडराने देता है</string>
+    <string name="wake_when_plugged_or_unplugged_title">प्लग करने पर जागना</string>
+    <string name="wake_when_plugged_or_unplugged_summary">पावर स्रोत से कनेक्ट करते समय या उससे डिसकनेक्ट करते समय स्क्रीन को चालू करें</string>
+</resources>
diff --git a/res/values-hr/cm_strings.xml b/res/values-hr/cm_strings.xml
new file mode 100644
index 0000000..a0f0d19
--- /dev/null
+++ b/res/values-hr/cm_strings.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Dodatno</string>
+    <string name="advanced_keyboard_settings_title">Napredne postavke</string>
+    <string name="lineagelicense_title">LineageOS licenca</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Sada ste <xliff:g id="step_count">%1$d</xliff:g> korak od omogućavanja razvojnih postavki.</item>
+        <item quantity="few">Sada ste <xliff:g id="step_count">%1$d</xliff:g> koraka od omogućavanja razvojnih postavki.</item>
+        <item quantity="other">Sada ste <xliff:g id="step_count">%1$d</xliff:g> koraka od omogućavanja razvojnih postavki.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Omogućili ste razvojne postavke!</string>
+    <string name="show_dev_already_cm">Nema potrebe, već ste omogućili postavke za razvoj.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatski povećava učestalost osvježavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dodir za spavanje</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dvaput dodirnite traku statusa na zaključanom zaslonu za isključivanje zaslona</string>
+    <string name="heads_up_notifications_enabled_title">Plutajuće obavijesti</string>
+    <string name="heads_up_notifications_enabled_summary">Prikazuje prioritetne obavijesti u malim plutajućim prozorima</string>
+    <string name="high_touch_sensitivity_title">Visoka osjetljivost na dodir</string>
+    <string name="high_touch_sensitivity_summary">Povećaj osjetljivost na dodir tako da se mogu koristiti rukavice</string>
+    <string name="increasing_ring_volume_option_title">Pojačavanje glasnoće zvona</string>
+    <string name="increasing_ring_min_volume_title">Početna jačina zvuka</string>
+    <string name="increasing_ring_ramp_up_time_title">Vrijeme podizanja</string>
+    <string name="lockscreen_media_art_title">Prikaži omot medija</string>
+    <string name="lock_settings_picker_pattern_size_message">Odaberite veličinu uzorka</string>
+    <string name="lockpattern_settings_enable_error_path_title">Pokaži grešku uzorka</string>
+    <string name="lockpattern_settings_enable_dots_title">Pokaži točke uzorka</string>
+    <string name="min_refresh_rate_title">Minimalna brzina osvježavanja</string>
+    <string name="app_notification_sound_timeout_title">Minimalno vrijeme između zvukova obavijesti</string>
+    <string name="app_notification_sound_timeout_summary_template">Dopusti zvukove ili vibraciju ne više od jednom svakih <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Bez ograničenja</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekundi</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekundi</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuta</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuta</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuta</string>
+    <string name="data_usage_app_restrict_mobile">Mobilni podaci</string>
+    <string name="data_usage_app_restrict_mobile_summary">Omogući upotrebu mobilnih podataka</string>
+    <string name="unlock_scramble_pin_layout_title">Nasumičan raspored</string>
+    <string name="unlock_scramble_pin_layout_summary">Nasumičan PIN raspored pri otključavanju uređaja</string>
+    <string name="proximity_wake_title">Sprječavanje slučajnog buđenja</string>
+    <string name="proximity_wake_summary">Provjera senzora blizine prije buđenja zaslona</string>
+    <string name="touchscreen_gesture_settings_title">Geste zaslona</string>
+    <string name="touchscreen_gesture_settings_summary">Razne geste zaslona za brze radnje</string>
+    <string name="touchscreen_hovering_title">Lebdenje zaslonom</string>
+    <string name="touchscreen_hovering_summary">Dopušta vam da lebdite zaslonom kao miš u web pretraživaču, udaljenom desktopu, itd</string>
+    <string name="wake_when_plugged_or_unplugged_title">Buđenje pri priključivanju</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Uključite zaslon prilikom spajanja ili odspajanja izvora napajanja</string>
+    <string name="fast_charging_title">Brzo punjenje</string>
+    <string name="fast_charging_summary">Onemogućite kako biste smanjili toplinu koju uređaj proizvodi tijekom punjenja ili produljili vijek trajanja baterije</string>
+</resources>
diff --git a/res/values-hu/cm_strings.xml b/res/values-hu/cm_strings.xml
new file mode 100644
index 0000000..b8429c2
--- /dev/null
+++ b/res/values-hu/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extrák</string>
+    <string name="advanced_keyboard_settings_title">Haladó beállítások</string>
+    <string name="adb_enable_root">Rootolt hibakeresés</string>
+    <string name="adb_enable_summary_root">Rootolva engedélyezi az Android hibakeresését</string>
+    <string name="backup_transport_setting_label">Mentési-szolgáltatás megváltoztatása</string>
+    <string name="backup_transport_title">Mentési-szolgáltatás kiválasztása</string>
+    <string name="berry_black_theme_title">Valódi fekete</string>
+    <string name="berry_black_theme_summary">Egy igazán fekete háttér a fekete témákhoz</string>
+    <string name="lineagelicense_title">LineageOS jogi nyilatkozat</string>
+    <string name="device_info_protected_single_press">Érintés után láthatja az infókat</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ön <xliff:g id="step_count">%1$d</xliff:g> lépésre van attól, hogy engedélyezze a fejlesztői beállításokat.</item>
+        <item quantity="other">Ön <xliff:g id="step_count">%1$d</xliff:g> lépésre van attól, hogy engedélyezze a fejlesztői beállításokat.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Sikeresen engedélyezte a fejlesztői beállításokat!</string>
+    <string name="show_dev_already_cm">Már korábban engedélyezte a fejlesztői beállításokat.</string>
+    <string name="peak_refresh_rate_summary_custom">Néhány tartalomnál automatikusan megemeli a frissítés gyakoriságát 60-ról %1$d Hz-re. Növeli az akkumulátorhasználatot.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dupla érintésre alvómód</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Az állapotsor vagy a záróképernyő dupla érintésére kikapcsol a képernyő</string>
+    <string name="high_touch_polling_rate_title">Magas értékű képernyő-lekérdezés</string>
+    <string name="high_touch_polling_rate_summary">Az érintőképernyő lekérdezési értékének növelése</string>
+    <string name="heads_up_notifications_enabled_title">Lebegő értesítés</string>
+    <string name="heads_up_notifications_enabled_summary">Kiemelt értesítések megjelenítése egy kis lebegő ablakban</string>
+    <string name="high_touch_sensitivity_title">Magas érintési érzékenység</string>
+    <string name="high_touch_sensitivity_summary">Érintőképernyő érzékenységének növelése, így kesztyű viselése esetén is használható</string>
+    <string name="tethering_allow_vpn_upstreams_title">Kliensek VPN-használatának engedélyezése</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Engedélyezze a hotspot-klienseknek, hogy a készülék VPN-kapcsolatait felfelé csatlakoztathassák</string>
+    <string name="increasing_ring_volume_option_title">Emelkedő csengőhang</string>
+    <string name="increasing_ring_min_volume_title">Kezdeti hangerő</string>
+    <string name="increasing_ring_ramp_up_time_title">Felfutási idő</string>
+    <string name="lockscreen_media_art_title">Média borítójának megjelenítése</string>
+    <string name="lock_settings_picker_pattern_size_message">Válassza ki a minta méretét</string>
+    <string name="lockpattern_settings_enable_error_path_title">Hibás minta megjelenítése</string>
+    <string name="lockpattern_settings_enable_dots_title">Feloldási pontok megjelenítése</string>
+    <string name="max_refresh_rate_title">Képernyőfrissítés-emelés</string>
+    <string name="min_refresh_rate_title">Minimális képernyőfrissítés</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Táblagépe előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Készüléke előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonja előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Táblagépe hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Készüléke hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonja hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Táblagépe oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Készüléke oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonja oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Érintse meg a szenzort készüléke előlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Érintse meg a szenzort készüléke előlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Érintse meg a szenzort telefonja előlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Érintse meg a szenzort készüléke hátlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Érintse meg a szenzort készüléke hátlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Érintse meg a szenzort telefonja hátlapján.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Érintse meg a szenzort készüléke oldalán.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Érintse meg a szenzort készüléke oldalán.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Érintse meg a szenzort telefonja oldalán.</string>
+    <string name="show_navbar_hint_title">Navigációs tipp</string>
+    <string name="show_navbar_hint_summary">A navigáció ajánlásait a képernyő alján jeleníti meg</string>
+    <string name="app_notification_sound_timeout_title">Értesítési hangok közötti minimum időtartam</string>
+    <string name="app_notification_sound_timeout_summary_template">Hang vagy rezgés ismétlődésének engedélyezése: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Nincs korlátozás</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 másodperc</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 másodperc</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 perc</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 perc</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 perc</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 perc</string>
+    <string name="auto_brightness_one_shot_title">Egylövéses automata-fényerő</string>
+    <string name="auto_brightness_one_shot_summary">A fényerőbeállítás csak a képernyő bekapcsolásának pillanatában történik</string>
+    <string name="data_usage_app_restrict_all">Hálózat-hozzáférés engedélyezése</string>
+    <string name="data_usage_app_restrict_all_summary">Lehetővé teszi a hálózathasználatot</string>
+    <string name="data_usage_app_restrict_mobile">Mobiladat</string>
+    <string name="data_usage_app_restrict_mobile_summary">Mobiladat-használat engedélyezés</string>
+    <string name="data_usage_app_restrict_vpn">VPN-adatok</string>
+    <string name="data_usage_app_restrict_vpn_summary">A VPN-adathasználat engedélyezése</string>
+    <string name="data_usage_app_restrict_wifi">Wi-Fi-kapcsolat</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi-adathasználat engedélyezése</string>
+    <string name="unlock_scramble_pin_layout_title">Szoros elrendezés</string>
+    <string name="unlock_scramble_pin_layout_summary">PIN szoros elrendezése az eszköz feloldásakor</string>
+    <string name="proximity_wake_title">Véletlen ébresztés megakadályozása</string>
+    <string name="proximity_wake_summary">Közelségérzékelő ellenőrzése a képernyő felébresztése előtt</string>
+    <string name="touchscreen_gesture_settings_title">Érintőképernyő-mozdulatvezérlés</string>
+    <string name="touchscreen_gesture_settings_summary">Különböző képernyő-mozdulatvezérlések végrehajtása a gyorsműveletekhez</string>
+    <string name="touchscreen_hovering_title">Lebegő érintés</string>
+    <string name="touchscreen_hovering_summary">Engedélyezi a lebegéssel való vezérlést, mint egy egérrel a böngészőknél, távoli asztaloknál, stb.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Felébredés töltő csatlakoztatásakor</string>
+    <string name="wake_when_plugged_or_unplugged_summary">A képernyő bekapcsolása a töltő csatlakoztatása/eltávolítása után</string>
+    <string name="fast_charging_title">Gyorstöltés</string>
+    <string name="fast_charging_summary">Ne engedélyezze, ha csökkentené a készülék töltés közbeni melegedését, vagy meghosszabbítaná az akkumulátor élettartamát</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Az ujjlenyomat-olvasó hosszannyomásával feloldható a telefon</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Az ujjlenyomat-olvasó hosszannyomásával feloldható a táblagép</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Az ujjlenyomat-olvasó hosszannyomásával feloldható a készülék</string>
+    <string name="ambient_display_screen_off_udfps_summary">A képernyő felébresztéséhez és feloldásához nyomja meg hosszan a képernyőbe épitett ujjlenyomat-olvasót.</string>
+    <string name="storage_warning_internal">Figyelmeztetés: Előfordulhat, hogy ez a lehetőség nem működik megfelelően, vagy adatvesztéshez vezethet, ezért nem javasolt!</string>
+</resources>
diff --git a/res/values-hy/cm_strings.xml b/res/values-hy/cm_strings.xml
new file mode 100644
index 0000000..84b3363
--- /dev/null
+++ b/res/values-hy/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Որոշակի բովանդակության համար թարմացման հաճախականությունը 60-ից կդառնա %1$d Հց։ Երկարացնում է մարտկոցի օգտագործման ժամանակը։</string>
+</resources>
diff --git a/res/values-in/cm_strings.xml b/res/values-in/cm_strings.xml
new file mode 100644
index 0000000..3593fbd
--- /dev/null
+++ b/res/values-in/cm_strings.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Tambahan</string>
+    <string name="advanced_keyboard_settings_title">Setelan lanjutan</string>
+    <string name="backup_transport_setting_label">Ubah penyedia cadangan</string>
+    <string name="backup_transport_title">Pilih penyedia cadangan</string>
+    <string name="berry_black_theme_title">Hitam</string>
+    <string name="berry_black_theme_summary">Latar belakang hitam untuk tema gelap</string>
+    <string name="lineagelicense_title">Hukum LineageOS</string>
+    <string name="device_info_protected_single_press">Ketuk untuk menampilkan info</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other"><xliff:g id="step_count">%1$d</xliff:g> langkah lagi untuk mengaktifkan opsi pengembang.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Anda adalah seorang pengembang!</string>
+    <string name="show_dev_already_cm">Tidak perlu, Anda telah mengaktifkan opsi pengembang.</string>
+    <string name="peak_refresh_rate_summary_custom">Otomatis meningkatkan rasio pembaruan dari 60 menjadi %1$d Hz untuk beberapa konten. Meningkatkan penggunaan baterai.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Ketuk untuk tidur</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Ketukan ganda pada bilah status atau layar kunci untuk mematikan layar</string>
+    <string name="heads_up_notifications_enabled_title">Notifikasi mengambang</string>
+    <string name="heads_up_notifications_enabled_summary">Menampilkan pemberitahuan prioritas dalam jendela kecil yang mengambang</string>
+    <string name="high_touch_sensitivity_title">Kepekaan sentuh tinggi</string>
+    <string name="high_touch_sensitivity_summary">Tingkatkan kepekaan layar sentuh sehingga dapat digunakan saat mengenakan sarung tangan</string>
+    <string name="tethering_allow_vpn_upstreams_title">Izinkan klien menggunakan VPN</string>
+    <string name="increasing_ring_volume_option_title">Meningkatkan volume dering</string>
+    <string name="increasing_ring_min_volume_title">Volume awal</string>
+    <string name="increasing_ring_ramp_up_time_title">Waktu penguatan</string>
+    <string name="lockscreen_media_art_title">Tampilkan sampul media</string>
+    <string name="lock_settings_picker_pattern_size_message">Pilih ukuran pola</string>
+    <string name="lockpattern_settings_enable_error_path_title">Tunjukkan galat pola</string>
+    <string name="lockpattern_settings_enable_dots_title">Tunjukkan titik-titik pola</string>
+    <string name="min_refresh_rate_title">Kecepatan refresh minimum</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Temukan sensor sidik jari di bagian depan tablet Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Temukan sensor sidik jari di bagian depan perangkat Anda</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Temukan lokasi sensor sidik jari di bagian depan telepon Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Temukan sensor sidik jari di bagian belakang tablet Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Temukan sensor sidik jari di bagian belakang perangkat Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Temukan lokasi sensor sidik jari di bagian belakang telepon Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Temukan sensor sidik jari di bagian samping tablet Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Temukan sensor sidik jari di bagian samping perangkat Anda.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Temukan lokasi sensor sidik jari di bagian samping telepon Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Sentuh sensor di bagian depan tablet Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Sentuh sensor di bagian depan perangkat Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Sentuh sensor di bagian depan ponsel Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Sentuh sensor di bagian belakang tablet Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Sentuh sensor di bagian belakang perangkat Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Sentuh sensor di bagian belakang ponsel Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Sentuh sensor di bagian samping tablet Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Sentuh sensor di bagian samping perangkat Anda.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Sentuh sensor di bagian samping ponsel Anda.</string>
+    <string name="app_notification_sound_timeout_title">Waktu minimum antara suara pemberitahuan</string>
+    <string name="app_notification_sound_timeout_summary_template">Memungkinkan suara atau getaran tidak lebih dari sekali setiap <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Tidak ada pembatasan</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 detik</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 detik</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 menit</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 menit</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 menit</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 menit</string>
+    <string name="auto_brightness_one_shot_title">Kecerahan otomatis satu bidikan</string>
+    <string name="auto_brightness_one_shot_summary">Penyesuaian kecerahan hanya akan terjadi pada saat layar dihidupkan</string>
+    <string name="data_usage_app_restrict_all">Izinkan akses jaringan</string>
+    <string name="data_usage_app_restrict_all_summary">Aktifkan penggunaan jaringan</string>
+    <string name="data_usage_app_restrict_mobile">Data seluler</string>
+    <string name="data_usage_app_restrict_mobile_summary">Aktifkan penggunaan data seluler</string>
+    <string name="data_usage_app_restrict_vpn">Data VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Aktifkan penggunaan data VPN</string>
+    <string name="data_usage_app_restrict_wifi">Data Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Aktifkan penggunaan data Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Tata letak acak</string>
+    <string name="unlock_scramble_pin_layout_summary">Acak tata letak PIN saat membuka perangkat</string>
+    <string name="proximity_wake_title">Mencegah bangun yang tidak disengaja</string>
+    <string name="proximity_wake_summary">Periksa sensor proximity sebelum membangunkan layar</string>
+    <string name="touchscreen_gesture_settings_title">Gerakan layar sentuh</string>
+    <string name="touchscreen_gesture_settings_summary">Melakukan berbagai gerakan layar sentuh untuk tindakan cepat</string>
+    <string name="touchscreen_hovering_title">Ambang jari di layar sentuh</string>
+    <string name="touchscreen_hovering_summary">Mengizinkan Anda mengambang jari di atas layar seperti menggunakan tetikus dalam peramban web, destop jarak jauh, dll</string>
+    <string name="wake_when_plugged_or_unplugged_title">Bangun saat pengisi daya di pasang</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Aktifkan layar ketika menghubungkan atau melepaskan sumber daya</string>
+    <string name="fast_charging_title">Pengisian daya cepat</string>
+    <string name="fast_charging_summary">Nonaktifkan untuk mengurangi panas yang dihasilkan oleh perangkat saat mengisi daya atau untuk memperpanjang masa pakai baterai</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Tekan lama pada sensor sidik jari untuk membuka kunci ponsel</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Tekan lama pada sensor sidik jari untuk membuka kunci tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Tekan lama pada sensor sidik jari untuk membuka kunci perangkat</string>
+    <string name="ambient_display_screen_off_udfps_summary">Untuk mengaktifkan layar dan membuka kunci, tekan lama sensor sidik jari di bawah layar.</string>
+</resources>
diff --git a/res/values-is/cm_strings.xml b/res/values-is/cm_strings.xml
new file mode 100644
index 0000000..5f18398
--- /dev/null
+++ b/res/values-is/cm_strings.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Auka</string>
+    <string name="advanced_keyboard_settings_title">Ítarlegar stillingar</string>
+    <string name="adb_enable_root">Aflúsun í rótarham</string>
+    <string name="adb_enable_summary_root">Leyfa að villuleit í Android sé keyrð sem kerfisstjóri/root</string>
+    <string name="backup_transport_setting_label">Breyta öryggisafritunarveitu</string>
+    <string name="backup_transport_title">Veldu öryggisafritunarveitu</string>
+    <string name="berry_black_theme_title">Hreint svart</string>
+    <string name="berry_black_theme_summary">Hreinn svartur bakgrunnur í dökku þema</string>
+    <string name="lineagelicense_title">Lagalegir fyrirvarar LineageOS</string>
+    <string name="device_info_protected_single_press">Ýttu til þess að birta upplýsingar</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Þú ert núna <xliff:g id="step_count">%1$d</xliff:g> skref frá því að virkja þróunarstillingar.</item>
+        <item quantity="other">Þú ert núna <xliff:g id="step_count">%1$d</xliff:g> skrefum frá því að virkja þróunarstillingar.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Þú hefur virkjað þróunarstillingar!</string>
+    <string name="show_dev_already_cm">Ekki nauðsynlegt, þú hefur þegar virkjað þróunarstillingar.</string>
+    <string name="peak_refresh_rate_summary_custom">Breytir endurnýjunarhraða sjálfkrafa úr 60 í %1$d Hz fyrir sumt efni. Eykur rafhlöðunotkun.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Ýttu til að svæfa</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tvíbankaðu á stöðustikuna eða læsiskjáinn til að slökkva á skjánum</string>
+    <string name="high_touch_polling_rate_title">Mikil tíðni snertinæmni</string>
+    <string name="high_touch_polling_rate_summary">Auka tíðni á snertinæmni</string>
+    <string name="heads_up_notifications_enabled_title">Áminningar</string>
+    <string name="heads_up_notifications_enabled_summary">Birta forgangstilkynningar í litlum fljótandi glugga</string>
+    <string name="high_touch_sensitivity_title">Mikil snertinæmni</string>
+    <string name="high_touch_sensitivity_summary">Auka næmni snertiskjás svo hægt sé að nota hann íklæddur vettlingum</string>
+    <string name="tethering_allow_vpn_upstreams_title">Leyfa forritum að nota VPN-tengingar</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Leyfa tengipunktsforritum að nota VPN-tengingar tækisins til að tengjast út (upstream)</string>
+    <string name="increasing_ring_volume_option_title">Eyk hljóðstyrk hringingar</string>
+    <string name="increasing_ring_min_volume_title">Upphafshljóðstyrkur</string>
+    <string name="increasing_ring_ramp_up_time_title">Stigmögnunartími</string>
+    <string name="lockscreen_media_art_title">Sýna umslagsmyndir margmiðlunarefnis</string>
+    <string name="lock_settings_picker_pattern_size_message">Veldu stærð mynsturs</string>
+    <string name="lockpattern_settings_enable_error_path_title">Birta villu í mynstri</string>
+    <string name="lockpattern_settings_enable_dots_title">Sýna mynsturpunkta</string>
+    <string name="max_refresh_rate_title">Mesta uppfærslutíðni</string>
+    <string name="min_refresh_rate_title">Lágmarks uppfærslutíðni</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Finndu fingrafaraskannann framan á spjaldtölvunni þinni.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Finndu fingrafaraskannann framan á tækinu þínu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Finndu fingrafaraskannann framan á símanum þínum.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Finndu fingrafaraskannann aftan á spjaldtölvunni þinni.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Finndu fingrafaraskannann aftan á tækinu þínu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Finndu fingrafaraskannann aftan á símanum þínum.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Finndu fingrafaraskannann á hlið spjaldtölvunnar þinnar.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Finndu fingrafaraskannann á hlið tækisins þíns.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Finndu fingrafaraskannann á hlið símans þíns.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Snertu lesarann framan á spjaldtölvunni.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Snertu lesarann framan á tækinu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Snertu lesarann framan á símanum.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Snertu lesarann aftan á spjaldtölvunni.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Snertu lesarann aftan á tækinu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Snertu lesarann aftan á símanum.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Snertu lesarann á hlið spjaldtölvunnar.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Snertu lesarann á hlið tækisins.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Snertu lesarann á hlið símans.</string>
+    <string name="show_navbar_hint_title">Ábending við flakk</string>
+    <string name="show_navbar_hint_summary">Birta stiku með ábendingum um flakk neðst á skjánum</string>
+    <string name="app_notification_sound_timeout_title">Lágmarkstími milli tilkynningahljóða</string>
+    <string name="app_notification_sound_timeout_summary_template">Leyfa hljóð eða titring ekki oftar en einu sinni á <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Engar takmarkanir</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekúndur</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekúndur</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 mínúta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 mínútur</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 mínútur</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 mínútur</string>
+    <string name="data_usage_app_restrict_all">Leyfa aðgang að neti</string>
+    <string name="data_usage_app_restrict_all_summary">Virkja notkun nets</string>
+    <string name="data_usage_app_restrict_mobile">Farsímagögn</string>
+    <string name="data_usage_app_restrict_mobile_summary">Virkja notkun farsímagagna</string>
+    <string name="data_usage_app_restrict_vpn">VPN-gögn</string>
+    <string name="data_usage_app_restrict_vpn_summary">Virkja notkun VPN-gagna</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi gögn</string>
+    <string name="data_usage_app_restrict_wifi_summary">Virkja notkun á Wi\u2011Fi gögnum</string>
+    <string name="unlock_scramble_pin_layout_title">Rugla framsetningu</string>
+    <string name="unlock_scramble_pin_layout_summary">Rugla PIN-framsetningu þegar tæki er aflæst</string>
+    <string name="proximity_wake_title">Koma í veg fyrir slysalega vöknun</string>
+    <string name="proximity_wake_summary">Athuga nálægðarskynjara áður en skjár er vakinn</string>
+    <string name="touchscreen_gesture_settings_title">Bendingar á snertiskjá</string>
+    <string name="touchscreen_gesture_settings_summary">Framkvæma ýmsar bendingar á snertiskjá fyrir flýtiaðgerðir</string>
+    <string name="touchscreen_hovering_title">Svif yfir snertiskjá</string>
+    <string name="touchscreen_hovering_summary">Gerir þér kleift að láta bendil svífa eins og með mús yfir skjánum í vöfrum, fjartengdum skjáborðum, o.s.frv.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Vakning við tengingu</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Kveikja á skjá þegar afltenging er sett í samband eða aftengd</string>
+    <string name="fast_charging_title">Hraðhleðsla</string>
+    <string name="fast_charging_summary">Gera þetta óvirkt til að minnka hitann sem tækið framleiðir við hleðslu eða
+ til að lengja líftíma rafhlöðunnar</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Ýttu lengi á fingrafaraskanna til að taka símann úr lás</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Ýttu lengi á fingrafaraskanna til að taka spjaldtölvuna úr lás</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Ýttu lengi á fingrafaraskanna til að taka tækið úr lás</string>
+    <string name="ambient_display_screen_off_udfps_summary">Til að vekja skjáinn og aflæsa, skaltu ýta lengi á fingrafaraskannann undir skjánum.</string>
+</resources>
diff --git a/res/values-it/cm_strings.xml b/res/values-it/cm_strings.xml
new file mode 100644
index 0000000..cee412a
--- /dev/null
+++ b/res/values-it/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extra</string>
+    <string name="advanced_keyboard_settings_title">Impostazioni avanzate</string>
+    <string name="adb_enable_root">Debug con accesso root</string>
+    <string name="adb_enable_summary_root">Consenti l\'utilizzo di funzioni di debug con permessi root</string>
+    <string name="backup_transport_setting_label">Cambia gestore di backup</string>
+    <string name="backup_transport_title">Seleziona un gestore di backup</string>
+    <string name="berry_black_theme_title">Nero puro</string>
+    <string name="berry_black_theme_summary">Tema scuro con sfondo nero</string>
+    <string name="lineagelicense_title">Note legali LineageOS</string>
+    <string name="device_info_protected_single_press">Tocca per mostrare l\'informazione</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ora sei ad <xliff:g id="step_count">%1$d</xliff:g> passo dall\'attivare le impostazioni di sviluppo.</item>
+        <item quantity="other">Ora sei a <xliff:g id="step_count">%1$d</xliff:g> passi dall\'attivare le impostazioni di sviluppo.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Hai attivato le impostazioni di sviluppo!</string>
+    <string name="show_dev_already_cm">Non è necessario, hai già attivato le impostazioni di sviluppo.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente la frequenza di aggiornamento da 60 a %1$d Hz per alcuni contenuti. Aumenta l\'utilizzo della batteria.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tocca per spegnere lo schermo</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Tocca due volte la barra di stato o la schermata di sblocco per spegnere lo schermo</string>
+    <string name="high_touch_polling_rate_title">Campionamento del touchscreen a frequenza elevata</string>
+    <string name="high_touch_polling_rate_summary">Aumenta la frequenza di campionamento del touchscreen</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Visualizza le notifiche prioritarie in una piccola finestra fluttuante</string>
+    <string name="high_touch_sensitivity_title">Tocco ad alta sensibilità</string>
+    <string name="high_touch_sensitivity_summary">Aumenta la sensibilità del touchscreen per l\'utilizzo con i guanti</string>
+    <string name="tethering_allow_vpn_upstreams_title">Consenti ai dispositivi connessi di utilizzare le VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Consenti ai dispositivi connessi all\'hotspot di utilizzare le connessioni VPN di questo dispositivo</string>
+    <string name="increasing_ring_volume_option_title">Suoneria incrementale</string>
+    <string name="increasing_ring_min_volume_title">Volume iniziale</string>
+    <string name="increasing_ring_ramp_up_time_title">Tempo di aumento</string>
+    <string name="lockscreen_media_art_title">Mostra copertina album</string>
+    <string name="lock_settings_picker_pattern_size_message">Scegli la dimensione della sequenza</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostra sequenza errata</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostra punti sequenza</string>
+    <string name="max_refresh_rate_title">Frequenza massima di aggiornamento</string>
+    <string name="min_refresh_rate_title">Frequenza di aggiornamento minima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Individua il sensore d\'impronte digitali sulla parte laterale del tuo tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Individua il sensore d\'impronte digitali sulla parte laterale del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Individua il sensore d\'impronte digitali sulla parte laterale del tuo telefono.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tocca il sensore sulla parte anteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tocca il sensore sulla parte anteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tocca il sensore sulla parte anteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tocca il sensore sulla parte posteriore del tuo tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tocca il sensore sulla parte posteriore del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tocca il sensore sulla parte posteriore del tuo telefono.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tocca il sensore sulla parte laterale del tuo tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tocca il sensore sulla parte laterale del tuo dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tocca il sensore sulla parte laterale del tuo telefono.</string>
+    <string name="show_navbar_hint_title">Indicatore navigazione</string>
+    <string name="show_navbar_hint_summary">Mostra l\'indicatore di navigazione in fondo allo schermo</string>
+    <string name="app_notification_sound_timeout_title">Tempo minimo tra suoni di notifica</string>
+    <string name="app_notification_sound_timeout_summary_template">Consenti suoni o vibrazioni non più di una volta ogni <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Nessuna restrizione</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 secondi</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 secondi</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuti</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuti</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuti</string>
+    <string name="auto_brightness_one_shot_title">Luminosità automatica singola </string>
+    <string name="auto_brightness_one_shot_summary">La regolazione della luminosità avverrà solo quando lo schermo viene acceso</string>
+    <string name="data_usage_app_restrict_all">Consenti accesso alla rete</string>
+    <string name="data_usage_app_restrict_all_summary">Abilita l\'utilizzo della rete</string>
+    <string name="data_usage_app_restrict_mobile">Dati mobili</string>
+    <string name="data_usage_app_restrict_mobile_summary">Abilita l\'utilizzo dei dati mobili</string>
+    <string name="data_usage_app_restrict_vpn">Dati VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Abilita utilizzo dati VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dati Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Abilita l\'uso dei dati Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Mescola disposizione</string>
+    <string name="unlock_scramble_pin_layout_summary">Mescola la disposizione del tastierino PIN per lo sblocco del dispositivo</string>
+    <string name="proximity_wake_title">Previeni risvegli accidentali</string>
+    <string name="proximity_wake_summary">Controlla il sensore di prossimità prima di accendere lo schermo</string>
+    <string name="touchscreen_gesture_settings_title">Gesture sullo schermo</string>
+    <string name="touchscreen_gesture_settings_summary">Esegui varie gesture sullo schermo per azioni rapide</string>
+    <string name="touchscreen_hovering_title">Touch a puntamento</string>
+    <string name="touchscreen_hovering_summary">Consente di utilizzare il tocco come un mouse nei browser e nei desktop remoti</string>
+    <string name="wake_when_plugged_or_unplugged_title">Risveglia al collegamento</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Accendi lo schermo quando si collega o si scollega l\'alimentazione</string>
+    <string name="fast_charging_title">Ricarica rapida</string>
+    <string name="fast_charging_summary">Disabilita per ridurre il calore prodotto dal dispositivo durante la carica o per prolungare la durata della batteria</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Premi a lungo sul sensore d\'impronte digitali per sbloccare il telefono</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Premi a lungo sul sensore d\'impronte digitali per sbloccare il tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Premi a lungo sul sensore d\'impronte digitali per sbloccare il dispositivo</string>
+    <string name="ambient_display_screen_off_udfps_summary">Per accendere lo schermo e sbloccare il dispositivo, premi a lungo sul sensore d\'impronte digitali sotto lo schermo.</string>
+    <string name="storage_warning_internal">Attenzione: questa opzione potrebbe non funzionare correttamente o causare una perdita di dati, e quindi non è raccomandata!</string>
+</resources>
diff --git a/res/values-iw/cm_strings.xml b/res/values-iw/cm_strings.xml
new file mode 100644
index 0000000..62395f3b
--- /dev/null
+++ b/res/values-iw/cm_strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS משפטי</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">אתם נמצאים רק עוד צעד <xliff:g id="step_count">%1$d</xliff:g> מהפעלת אפשרויות מפתח.</item>
+        <item quantity="two">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+        <item quantity="many">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+        <item quantity="other">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+    </plurals>
+    <string name="show_dev_on_cm">אפשרויות מפתח פעילות!</string>
+    <string name="show_dev_already_cm">אין צורך. כבר הפעלת את אפשרויות המפתח.</string>
+    <string name="peak_refresh_rate_summary_custom">‏קצב הרענון עולה באופן אוטומטי מ-60 ל-Hz‏%1$d לחלק מהתוכן. פעולה זו מגבירה את השימוש בסוללה.</string>
+    <string name="status_bar_double_tap_to_sleep_title">הקש בכדי לכבות מסך</string>
+    <string name="status_bar_double_tap_to_sleep_summary">הקש פעמיים על שורת המצב או על מסך נעילה בכדי לכבות את המסך</string>
+    <string name="heads_up_notifications_enabled_title">התראות קופצות</string>
+    <string name="heads_up_notifications_enabled_summary">הראה התראות חשובות בחלון צף קטן</string>
+    <string name="high_touch_sensitivity_title">רגישות גבוהה למגע</string>
+    <string name="high_touch_sensitivity_summary">הגבר את רגישות מסך המגע, כך שניתן יהיה להשתמש בו בעת לבישת כפפות</string>
+    <string name="increasing_ring_volume_option_title">עוצמת צלצול מתגברת</string>
+    <string name="increasing_ring_min_volume_title">עוצמה התחלתית</string>
+    <string name="increasing_ring_ramp_up_time_title">אורך זמן ההגברה</string>
+    <string name="lockscreen_media_art_title">הצג תמונת אלבום/מדיה</string>
+    <string name="lock_settings_picker_pattern_size_message">בחר גודל תבנית</string>
+    <string name="lockpattern_settings_enable_error_path_title">הצג שגיאות דפוס</string>
+    <string name="lockpattern_settings_enable_dots_title">הצג נקודות דפוס</string>
+    <string name="app_notification_sound_timeout_title">זמן מינימלי בין צלילי התראות</string>
+    <string name="app_notification_sound_timeout_summary_template">אפשר צלילים או רטט לא יותר מפעם אחת בכל <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">ללא מגבלה</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 שניות</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 שניות</string>
+    <string name="app_notification_sound_timeout_value_1_minute">דקה 1</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 דקות</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 דקות</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 דקות</string>
+    <string name="data_usage_app_restrict_wifi">‏נתוני Wi‑Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">אפשר שימוש בנתוני Wi‑Fi</string>
+    <string name="unlock_scramble_pin_layout_title">ערבב פריסה</string>
+    <string name="unlock_scramble_pin_layout_summary">ערבב פריסת PIN בעת פתיחת המכשיר</string>
+    <string name="proximity_wake_title">מנע התעוררות מקרית</string>
+    <string name="proximity_wake_summary">בדוק את חיישן הקירבה לפני הפעלת המסך</string>
+    <string name="touchscreen_gesture_settings_title">מחוות מגע</string>
+    <string name="touchscreen_gesture_settings_summary">השתמש במחוות מגע שונות לפעולות מהירות</string>
+    <string name="touchscreen_hovering_title">מגע בריחוף</string>
+    <string name="touchscreen_hovering_summary">מאפשר להעביר את האצבע מעל המסך כמו עכבר של מחשב בדפדפנים, בעמדות שליטה מרחוק וכד\'</string>
+    <string name="wake_when_plugged_or_unplugged_title">הער מסך בעת חיבור</string>
+    <string name="wake_when_plugged_or_unplugged_summary">הפעל את המסך כאשר מקור חשמל מתחבר או מתנתק מהמכשיר</string>
+</resources>
diff --git a/res/values-ja/cm_strings.xml b/res/values-ja/cm_strings.xml
new file mode 100644
index 0000000..e0ac76a
--- /dev/null
+++ b/res/values-ja/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">その他</string>
+    <string name="advanced_keyboard_settings_title">高度な設定</string>
+    <string name="adb_enable_root">ルート状態でのデバッグ</string>
+    <string name="adb_enable_summary_root">ルート状態でも Android デバッグを許可する</string>
+    <string name="backup_transport_setting_label">バックアップ プロバイダの変更</string>
+    <string name="backup_transport_title">バックアップ プロバイダの選択</string>
+    <string name="berry_black_theme_title">ピュアブラック</string>
+    <string name="berry_black_theme_summary">ダークテーマ時に背景をピュアブラックにする</string>
+    <string name="lineagelicense_title">LineageOS 利用規約</string>
+    <string name="device_info_protected_single_press">タップして情報を表示</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">開発者向けオプションが有効になるまであと<xliff:g id="step_count">%1$d</xliff:g>ステップです。</item>
+    </plurals>
+    <string name="show_dev_on_cm">開発者向けオプションが有効になりました。</string>
+    <string name="show_dev_already_cm">必要ありません、開発者向けオプションは既に有効になっています。</string>
+    <string name="peak_refresh_rate_summary_custom">コンテンツに応じて、リフレッシュ レートを自動的に 60 Hz から %1$d Hz に変更します。電池使用量が増えます。</string>
+    <string name="status_bar_double_tap_to_sleep_title">ロック画面をタップしてスリープ状態にする</string>
+    <string name="status_bar_double_tap_to_sleep_summary">ステータスバーかロックスクリーンをダブルタップしてディスプレイを消灯します</string>
+    <string name="high_touch_polling_rate_title">ポーリング速度の高速化</string>
+    <string name="high_touch_polling_rate_summary">タッチスクリーンのポーリング速度を上げます</string>
+    <string name="heads_up_notifications_enabled_title">ヘッドアップ</string>
+    <string name="heads_up_notifications_enabled_summary">小さなフローティングウインドウに重要な通知を表示します</string>
+    <string name="high_touch_sensitivity_title">高感度タッチ</string>
+    <string name="high_touch_sensitivity_summary">手袋を着けたまま使用できるようにタッチ画面の感度を向上させる</string>
+    <string name="tethering_allow_vpn_upstreams_title">クライアントの VPN 使用を許可</string>
+    <string name="tethering_allow_vpn_upstreams_summary">この端末の VPN 接続をホットスポットのクライアントが送信接続に使うことを許可する</string>
+    <string name="increasing_ring_volume_option_title">着信音量の増幅</string>
+    <string name="increasing_ring_min_volume_title">開始音量</string>
+    <string name="increasing_ring_ramp_up_time_title">増幅時間</string>
+    <string name="lockscreen_media_art_title">メディアのカバーアートを表示</string>
+    <string name="lock_settings_picker_pattern_size_message">パターンサイズを選択してください</string>
+    <string name="lockpattern_settings_enable_error_path_title">間違えたパターンを表示</string>
+    <string name="lockpattern_settings_enable_dots_title">パターンのドットを表示</string>
+    <string name="max_refresh_rate_title">最高リフレッシュレート</string>
+    <string name="min_refresh_rate_title">最小リフレッシュレート</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">端末前面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">端末前面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">端末前面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">端末背面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">端末背面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">端末背面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">端末側面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">端末側面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">端末側面にある指紋認証センサーを探してください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">端末前面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">端末前面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">端末前面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">端末背面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">端末背面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">端末背面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">端末側面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">端末側面にある指紋認証センサーをタッチしてください</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">端末側面にある指紋認証センサーをタッチしてください</string>
+    <string name="show_navbar_hint_title">ナビゲーションバーのヒント</string>
+    <string name="show_navbar_hint_summary">画面下部にナビゲーションバーのヒントを表示します</string>
+    <string name="app_notification_sound_timeout_title">通知音の最小間隔</string>
+    <string name="app_notification_sound_timeout_summary_template"><xliff:g id="duration">%1$s</xliff:g>間に1回以上の通知音またはバイブレーションを許可しない</string>
+    <string name="app_notification_sound_timeout_value_none">無制限</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10秒</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30秒</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1分</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5分</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10分</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30分</string>
+    <string name="auto_brightness_one_shot_title">画面点灯時にのみ適用する</string>
+    <string name="auto_brightness_one_shot_summary">画面が点灯した時に一度だけ自動で画面の明るさ調整を行います</string>
+    <string name="data_usage_app_restrict_all">ネットワークアクセスを許可する</string>
+    <string name="data_usage_app_restrict_all_summary">ネットワークの使用状況を有効化する</string>
+    <string name="data_usage_app_restrict_mobile">モバイルデータ通信</string>
+    <string name="data_usage_app_restrict_mobile_summary">モバイルデータ使用量を有効化する</string>
+    <string name="data_usage_app_restrict_vpn">VPN データ</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN データ使用量を有効化する</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi データ使用量</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi データ使用量を有効化します</string>
+    <string name="unlock_scramble_pin_layout_title">スクランブルレイアウト</string>
+    <string name="unlock_scramble_pin_layout_summary">端末のロック解除時にPINレイアウトをランダムにする</string>
+    <string name="proximity_wake_title">誤作動を防止</string>
+    <string name="proximity_wake_summary">スリープ解除する前に接近センサーで確認する</string>
+    <string name="touchscreen_gesture_settings_title">タッチスクリーンジェスチャー</string>
+    <string name="touchscreen_gesture_settings_summary">様々なタッチスクリーンジェスチャーですばやくアクションを実行します</string>
+    <string name="touchscreen_hovering_title">タッチ画面のホバリング</string>
+    <string name="touchscreen_hovering_summary">ウェブブラウザやリモードデスクトップなどでマウスのようにホバリングできるようにする</string>
+    <string name="wake_when_plugged_or_unplugged_title">接続時にスリープ解除</string>
+    <string name="wake_when_plugged_or_unplugged_summary">電源を接続または切断したときに画面を点灯します</string>
+    <string name="fast_charging_title">急速充電</string>
+    <string name="fast_charging_summary">充電中の端末の発熱を減らしバッテリー寿命を伸ばすためには無効にしてください</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">指紋センサーを長押しして端末のロックを解除する</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">指紋センサーを長押しして端末のロックを解除する</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">指紋センサーを長押しして端末のロックを解除する</string>
+    <string name="ambient_display_screen_off_udfps_summary">画面を起動してロックを解除するには、画面内指紋センサーを長押ししてください。</string>
+    <string name="storage_warning_internal">警告: このオプションは正常に動作しなかったりデータの消失に繋がる可能性があるため推奨しません！</string>
+</resources>
diff --git a/res/values-ka/cm_strings.xml b/res/values-ka/cm_strings.xml
new file mode 100644
index 0000000..1c7ec05
--- /dev/null
+++ b/res/values-ka/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">დამატებითი</string>
+    <string name="advanced_keyboard_settings_title">დამატებითი პარამეტრები</string>
+    <string name="adb_enable_root">ძირეული უფლებით გამართვა</string>
+    <string name="adb_enable_summary_root">ნებართვა, ძირეული უფლებით Android-გამართვისთვის</string>
+    <string name="backup_transport_setting_label">შეცვალეთ მარქაფის მომსახურება</string>
+    <string name="backup_transport_title">აირჩიეთ მარქაფის მომსახურება</string>
+    <string name="berry_black_theme_title">სადა შავი</string>
+    <string name="berry_black_theme_summary">სადა შავი ფონი მუქი იერსახისთვის</string>
+    <string name="lineagelicense_title">LineageOS – სამართლებრივი</string>
+    <string name="device_info_protected_single_press">შეეხეთ ინფორმაციისთვის</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">დარჩა <xliff:g id="step_count">%1$d</xliff:g> მცდელობა შემმუშავებლის პარამეტრების ჩართვამდე.</item>
+        <item quantity="other">დარჩა <xliff:g id="step_count">%1$d</xliff:g> მცდელობა შემმუშავებლის პარამეტრების ჩართვამდე.</item>
+    </plurals>
+    <string name="show_dev_on_cm">შემმუშავებლის პარამეტრები ჩართულია!</string>
+    <string name="show_dev_already_cm">საჭირო აღარაა, შემმუშავებლის პარამეტრები უკვე ამოქმედებულია.</string>
+    <string name="peak_refresh_rate_summary_custom">ავტომატურად ზრდის განახლების სიხშირეს 60-დან და %1$d ჰც-მდე გარკვეული კონტენტისთვის. გაზრდის ბატარეის მოხმარებას.</string>
+    <string name="status_bar_double_tap_to_sleep_title">შეხებით დაძინება</string>
+    <string name="status_bar_double_tap_to_sleep_summary">მდგომარეობის ზოლზე ან ჩაკეტილზე ორმაგი შეხებით ეკრანის ჩაქრობა</string>
+    <string name="high_touch_polling_rate_title">შეხებისას მაღალი შერჩევის სიხშირე</string>
+    <string name="high_touch_polling_rate_summary">ეკრანზე შეხების აღქმის სიხშირის გაზრდა</string>
+    <string name="heads_up_notifications_enabled_title">ამომხტომი</string>
+    <string name="heads_up_notifications_enabled_summary">მნიშვნელოვანი შეტყობინებების ჩვენება პატარა ამომხტომ ფანჯარაში</string>
+    <string name="high_touch_sensitivity_title">შეხების მაღალი მგრძნობელობა</string>
+    <string name="high_touch_sensitivity_summary">ეკრანის მგრძნობელობის გაზრდა, ხელთათმანით გამოსაყენებლად</string>
+    <string name="tethering_allow_vpn_upstreams_title">ნებართვა, გამოიყენონ VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">ნების მიცემა წვდომის წერტილთან მიერთებული კლიენტებისთვის, რომ შეძლონ ამ მოწყობილობის VPN-კავშირების გამოყენება აღმავალი მიმართულებით.</string>
+    <string name="increasing_ring_volume_option_title">ზარის ხმის მომატება</string>
+    <string name="increasing_ring_min_volume_title">საწყისი დონე</string>
+    <string name="increasing_ring_ramp_up_time_title">მომატების დრო</string>
+    <string name="lockscreen_media_art_title">ფაილის გარეკანის ჩვენება</string>
+    <string name="lock_settings_picker_pattern_size_message">მოსახაზის ზომის არჩევა</string>
+    <string name="lockpattern_settings_enable_error_path_title">მონახაზის შეცდომის ჩვენება</string>
+    <string name="lockpattern_settings_enable_dots_title">წერტილების ჩვენება მონახაზისთვის</string>
+    <string name="max_refresh_rate_title">განახლების უკიდურესი სიხშირე</string>
+    <string name="min_refresh_rate_title">განახლების უმცირესი სიჩქარე</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">მონახეთ თითის ანაბეჭდის აღმქმელი პლანშეტის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">მონახეთ თითის ანაბეჭდის აღმქმელი მოწყობილობის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">მონახეთ თითის ანაბეჭდის აღმქმელი ტელეფონის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">მონახეთ თითის ანაბეჭდის აღმქმელი პლანშეტის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">მონახეთ თითის ანაბეჭდის აღმქმელი მოწყობილობის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">მონახეთ თითის ანაბეჭდის აღმქმელი ტელეფონის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">მონახეთ თითის ანაბეჭდის აღმქმელი პლანშეტის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">მონახეთ თითის ანაბეჭდის აღმქმელი მოწყობილობის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">მონახეთ თითის ანაბეჭდის აღმქმელი ტელეფონის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">შეეხეთ აღმქმელს პლანშეტის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">შეეხეთ აღმქმელს მოწყობილობის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">შეეხეთ აღმქმელს ტელეფონის წინა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">შეეხეთ აღმქმელს პლანშეტის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">შეეხეთ აღმქმელს მოწყობილობის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">შეეხეთ აღმქმელს ტელეფონის უკანა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">შეეხეთ აღმქმელს პლანშეტის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">შეეხეთ აღმქმელს მოწყობილობის გვერდითა მხარეს.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">შეეხეთ აღმქმელს ტელეფონის გვერდითა მხარეს.</string>
+    <string name="show_navbar_hint_title">სამოძრაო მანიშნებელი</string>
+    <string name="show_navbar_hint_summary">სამოძრაო მანიშნებლის ზოლის გამოჩენა ეკრანის ქვემოთ</string>
+    <string name="app_notification_sound_timeout_title">უმცირესი დრო ხმოვან სიგნალებს შორის</string>
+    <string name="app_notification_sound_timeout_summary_template">მხოლოდ ერთი ხმოვანი სიგნალის ან ვიბრაციის შესაძლებლობა, ყოველ <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">შეზღუდვის გარეშე</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 წამში</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 წამში</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 წუთში</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 წუთში</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 წუთში</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 წუთში</string>
+    <string name="auto_brightness_one_shot_title">სიკაშკაშის ერთჯერადი თვითგასწორება</string>
+    <string name="auto_brightness_one_shot_summary">სიკაშკაშე გასწორდება, მხოლოდ ეკრანის ჩართვისას</string>
+    <string name="data_usage_app_restrict_all">ქსელთან წვდომის ნებართვა</string>
+    <string name="data_usage_app_restrict_all_summary">ქსელის გამოყენების შესაძლებლობა</string>
+    <string name="data_usage_app_restrict_mobile">მობილური ინტერნეტი</string>
+    <string name="data_usage_app_restrict_mobile_summary">მობილური ინტერნეტის გამოყენების შესაძლებლობა</string>
+    <string name="data_usage_app_restrict_vpn">VPN-კავშირი</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN-კავშირის გამოყენების შესაძლებლობა</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi ინტერნეტი</string>
+    <string name="data_usage_app_restrict_wifi_summary">WiFi-კავშირის გამოყენების შესაძლებლობა</string>
+    <string name="unlock_scramble_pin_layout_title">ღილაკების არევა</string>
+    <string name="unlock_scramble_pin_layout_summary">ღილაკების არეულად გამოჩენა PIN-კოდით გახსნისას</string>
+    <string name="proximity_wake_title">შემთხვევით გამოღვიძების არიდება</string>
+    <string name="proximity_wake_summary">სიახლოვის აღმქმელის შემოწმება, ეკრანის გამოღვიძებამდე</string>
+    <string name="touchscreen_gesture_settings_title">ეკრანზე შეხების ჟესტები</string>
+    <string name="touchscreen_gesture_settings_summary">ეკრანზე სხვადასხვაგვარი შეხება, სწრაფი მოქმედებებისთვის</string>
+    <string name="touchscreen_hovering_title">ეკრანზე შეხებით გადაფარვა</string>
+    <string name="touchscreen_hovering_summary">მსგავსად მაუსის მაჩვენებლით გადაფარვისა ბრაუზერებში, დაშორებულ კომპიუტერზე და ა.შ.</string>
+    <string name="wake_when_plugged_or_unplugged_title">გამოღვიძება შეერთებისას</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ეკრანის ჩართვა კვების შეერთებისას ან გამოერთებისას</string>
+    <string name="fast_charging_title">სწრაფი დამუხტვა</string>
+    <string name="fast_charging_summary">გამორთეთ გამოყოფილი სითბოს შესამცირებლად მოწყობილობის დამუხტვისას ან ბატარეის სიცოცხლის გასახანგრძლივებლად.</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">ტელეფონის გახსნა თითის ანაბეჭდის აღმქმელზე დიდხანს დაჭერით</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">პლანშეტის გახსნა თითის ანაბეჭდის აღმქმელზე დიდხანს დაჭერით</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">მოწყობილობის გახსნა თითის ანაბეჭდის აღმქმელზე დიდხანს დაჭერით</string>
+    <string name="ambient_display_screen_off_udfps_summary">ეკრანის ჩასართავად და გასახსნელად დიდხანს დააჭირეთ თითის ანაბეჭდის ეკრანქვეშა აღმქმელს.</string>
+    <string name="storage_warning_internal">გაფრთხილება: ამ პარამეტრმა შეიძლება ვერ იმუშაოს სათანადოდ ან მონაცემთა დაკარგვა გამოიწვიოს, შესაბამისად არასასურველია!</string>
+</resources>
diff --git a/res/values-kab-rDZ/cm_strings.xml b/res/values-kab-rDZ/cm_strings.xml
new file mode 100644
index 0000000..e4d5930
--- /dev/null
+++ b/res/values-kab-rDZ/cm_strings.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ayen-nniḍen</string>
+    <string name="advanced_keyboard_settings_title">Iɣewwaṛen leqqayen</string>
+    <string name="berry_black_theme_title">Aberkan zeddigen</string>
+    <string name="berry_black_theme_summary">Agilal aberkan zeddigen i usentel aberkan</string>
+    <string name="lineagelicense_title">Talɣut tusḍift n LineageOS</string>
+    <string name="show_dev_on_cm">Tremdeḍ iγewwaṛen n tneflit!</string>
+    <string name="show_dev_already_cm">Ulayɣer, tremdeḍ yakan iγewwaṛen n tneflit.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tekki akken ad yeṭṭes</string>
+    <string name="heads_up_notifications_enabled_title">Ilɣa yettafgen</string>
+    <string name="heads_up_notifications_enabled_summary">Sken-d ilɣa imezwura deg usfaylu ameẓẓyan yettifliwen</string>
+    <string name="high_touch_sensitivity_title">Aḥulfu ameqran n umaḍes</string>
+    <string name="high_touch_sensitivity_summary">Rnu ugar uḥulfu n ugdil ḥalam nezmer ad t-nesseqdec ula s iqeffazen</string>
+    <string name="increasing_ring_volume_option_title">A semɣeṛ n imesli n uṭenṭen</string>
+    <string name="increasing_ring_min_volume_title">Imesli n tazwara</string>
+    <string name="lock_settings_picker_pattern_size_message">Fren tiddi n wudlif</string>
+    <string name="lockpattern_settings_enable_error_path_title">Sken tuccḍa n uzenziɣ</string>
+    <string name="lockpattern_settings_enable_dots_title">Sken tinqiḍin n uzenziɣ</string>
+    <string name="app_notification_sound_timeout_value_none">Ulac tilisa</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 n tasinin</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 n tasinin</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 n tisdat</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 n tisdatin</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 n tisdatin</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 n tisdatin</string>
+    <string name="data_usage_app_restrict_all">Sireg anekcum ɣer uẓeṭṭa</string>
+    <string name="data_usage_app_restrict_all_summary">Rmed aseqdec n uẓeṭṭa</string>
+    <string name="data_usage_app_restrict_mobile">Isefka izirazen</string>
+    <string name="data_usage_app_restrict_wifi">Isefka Wi\u2011Fi</string>
+</resources>
diff --git a/res/values-kk/cm_strings.xml b/res/values-kk/cm_strings.xml
new file mode 100644
index 0000000..8ac067c
--- /dev/null
+++ b/res/values-kk/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Кейбір мазмұндар үшін жаңарту жиілігі 60-тан %1$d Гц-ке автоматты түрде артады. Батарея заряды тезірек таусылады.</string>
+</resources>
diff --git a/res/values-km/cm_strings.xml b/res/values-km/cm_strings.xml
new file mode 100644
index 0000000..a40f24f
--- /dev/null
+++ b/res/values-km/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">បង្កើន​អត្រា​ផ្ទុកឡើងវិញ​ដោយស្វ័យប្រវត្តិ​ពី 60 ទៅ %1$d Hz សម្រាប់​ខ្លឹមសារ​មួយចំនួន។ ប្រើប្រាស់ថ្ម​ច្រើន​ជាងមុន។</string>
+</resources>
diff --git a/res/values-kn/cm_strings.xml b/res/values-kn/cm_strings.xml
new file mode 100644
index 0000000..ce8376f
--- /dev/null
+++ b/res/values-kn/cm_strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS ಕಾನೂನು</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">ನೀವು ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಸಕ್ರಿಯಗೊಳಿಸಲು <xliff:g id="step_count">%1$d</xliff:g> ಹಂತದಷ್ತು ದೂರವಿದ್ದೀರಿ.</item>
+        <item quantity="other">ನೀವು ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಸಕ್ರಿಯಗೊಳಿಸಲು <xliff:g id="step_count">%1$d</xliff:g> ಹಂತಗಳಷ್ಟು ದೂರವಿದ್ದೀರಿ.</item>
+    </plurals>
+    <string name="show_dev_on_cm">ನೀವು ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಘಿಂಗ್ಸನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೀರಿ!</string>
+    <string name="show_dev_already_cm">ಅಗತ್ಯವಿಲ್ಲ, ನೀವು ಈಗಾಗಲೇ ಡೆವಲಪ್‍ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೀರಿ.</string>
+    <string name="peak_refresh_rate_summary_custom">ಕೆಲವು ವಿಷಯಗಳಿಗೆ ರಿಫ್ರೆಶ್ ರೇಟ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ 60 ರಿಂದ %1$d ಕ್ಕೆ ಏರಿಸುತ್ತದೆ. ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.</string>
+    <string name="status_bar_double_tap_to_sleep_title">ನಿದ್ರಿಸಲು ಮುಟ್ಟು</string>
+    <string name="status_bar_double_tap_to_sleep_summary">ಪರದೆಯನ್ನು ನಂದಿಸಲು ಸ್ಥಿತಿಪಟ್ಟಿಕೆ ಅಥವಾ ಬಿಗಿದ ಪರದೆಯನ್ನು ಜೋಡಿವತ್ತ್ತಿ</string>
+    <string name="heads_up_notifications_enabled_title">ಮುನ್ನೆಚ್ಚರಿಕೆ</string>
+    <string name="heads_up_notifications_enabled_summary">ಆದ್ಯತೆ ಸೂಚನೆಗಳನ್ನು ಸಣ್ಣ ತೇಲುವ ಕಿಟಕಿಯಲ್ಲಿ ಪ್ರದರ್ಶಿಸು</string>
+    <string name="high_touch_sensitivity_title">ಅಧಿಕ ಸ್ಪರ್ಶ ಸಂವೇದನೆ</string>
+    <string name="high_touch_sensitivity_summary">ಸ್ಪರ್ಶಪರದೆ ಸಂವೇದನೆ ವೃದ್ಧಿಸಿದರೆ ಕೈಗವಸ ಧರಿಸಿಯೂ ಬಳಸಬಹುದು</string>
+    <string name="increasing_ring_volume_option_title">ವೃದ್ಧಿಯಾಗುವ ಗಂಟೆನಾದ</string>
+    <string name="increasing_ring_min_volume_title">ಆರಂಭ ವಾಲ್ಯೂಂ</string>
+    <string name="increasing_ring_ramp_up_time_title">ಚಲನಶೀಲ ಅವಧಿ</string>
+    <string name="lockscreen_media_art_title">ಮಾಧ್ಯಮದ ಕವಚ ಕಲೆ ಪ್ರದರ್ಶಿಸು</string>
+    <string name="lock_settings_picker_pattern_size_message">ರೂಪಿಕೆಯ ಗಾತ್ರವನ್ನು ಆರಿಸು</string>
+    <string name="lockpattern_settings_enable_error_path_title">ನಮೂನೆ ದೋಷವನ್ನು ಪ್ರದರ್ಶಿಸು</string>
+    <string name="lockpattern_settings_enable_dots_title">ನಮೂನೆ ಚುಕ್ಕಿಗಳನ್ನು ಪ್ರದರ್ಶಿಸು</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi ದತ್ತಾಂಶ</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi ದತ್ತಾಂಶದ ಬಳಕೆ ಸಶಕ್ತಿಸು</string>
+    <string name="unlock_scramble_pin_layout_title">ವಿನ್ಯಾಸವನ್ನು ಅಸ್ತವ್ಯಸ್ತಗೊಳಿಸು</string>
+    <string name="unlock_scramble_pin_layout_summary">ಸಾಧನವನ್ನು ಅನ್‍ಲಾಕ್ ಮಾಡುವಾಗ ಪಿನ್ ವಿನ್ಯಾಸವನ್ನು ಅಸ್ತವ್ಯಸ್ತಗೊಳಿಸು</string>
+    <string name="proximity_wake_title">ಆಕಸ್ಮಿಕವಾಗಿ ಎಚ್ಚರವಾಗುವಿಕೆಯನ್ನು ತಡೆ</string>
+    <string name="proximity_wake_summary">ಪರದೆಯನ್ನು ಎಚ್ಚರಿಸುವ ಮೊದಲು ಸಾಮೀಪ್ಯ ಸಂವೇದಕವನ್ನು ಪರಿಶೀಲಿಸು</string>
+    <string name="touchscreen_gesture_settings_title">ಸ್ಪರ್ಷಪರದೆಯ ಸನ್ನೆಗಳು</string>
+    <string name="touchscreen_gesture_settings_summary">ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಸ್ಪರ್ಶಪರದೆ ಮೇಲೆ ವಿವಿಧ ಸನ್ನೆಗಳನ್ನು ಮಾಡು</string>
+    <string name="touchscreen_hovering_title">ಸ್ಪರ್ಶಪರದೆ ಹರಿದಾಡುವಿಕೆ</string>
+    <string name="touchscreen_hovering_summary">ಜಾಲ ಬ್ರೌಸರ್, ದೂರ ಮೇಲ್ತೆರೆ, ಇತರೆಗಳಲ್ಲಿ ಇಲಿಯ ಹಾಗೆ ಪರದೆ ಮೇಲೆ ಹರಿದಾಡಲು ಅನುಮತಿಸುತ್ತದೆ</string>
+    <string name="wake_when_plugged_or_unplugged_title">ಪ್ಲಗ್‍ಮಾಡಿದಾಗ ಎಬ್ಬಿಸು</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ವಿದ್ಯುತ್ ಮೂಲವನ್ನು ಸಂಪರ್ಕಿಸಿದಾಗ ಅಥವಾ ಅಸಂಪರ್ಕಿಸಿದಾಗ ಪರದೆಯನ್ನು ಆನ್ ಮಾಡು</string>
+</resources>
diff --git a/res/values-ko/cm_strings.xml b/res/values-ko/cm_strings.xml
new file mode 100644
index 0000000..9e56f00
--- /dev/null
+++ b/res/values-ko/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">추가 기능</string>
+    <string name="advanced_keyboard_settings_title">고급 설정</string>
+    <string name="adb_enable_root">디버깅 시 루트 권한 사용</string>
+    <string name="adb_enable_summary_root">ADB와 같은 디버깅 모드 사용시 루트 권한을 사용합니다.</string>
+    <string name="backup_transport_setting_label">백업 제공자 변경</string>
+    <string name="backup_transport_title">백업 제공자 선택</string>
+    <string name="berry_black_theme_title">검정색</string>
+    <string name="berry_black_theme_summary">어두운 테마 사용 시 완전 검정색 배경 사용</string>
+    <string name="lineagelicense_title">LineageOS 법적 고지</string>
+    <string name="device_info_protected_single_press">눌러서 정보 보기</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">개발자 설정을 활성화하려면 <xliff:g id="step_count">%1$d</xliff:g>회 더 누르세요.</item>
+    </plurals>
+    <string name="show_dev_on_cm">개발자 설정이 활성화되었습니다.</string>
+    <string name="show_dev_already_cm">이미 개발자 설정이 활성화되어 있습니다.</string>
+    <string name="peak_refresh_rate_summary_custom">일부 콘텐츠의 새로고침 빈도를 자동으로 60Hz에서 %1$dHz로 늘립니다. 이렇게 하면 배터리 사용량이 증가합니다.</string>
+    <string name="status_bar_double_tap_to_sleep_title">두드려 화면 끄기</string>
+    <string name="status_bar_double_tap_to_sleep_summary">상태 표시줄이나 잠금 화면을 두 번 두드려 화면 끄기</string>
+    <string name="high_touch_polling_rate_title">높은 터치 응답 속도 사용</string>
+    <string name="high_touch_polling_rate_summary">터치 응답 속도 높이기</string>
+    <string name="heads_up_notifications_enabled_title">헤드업 알림</string>
+    <string name="heads_up_notifications_enabled_summary">작은 플로팅 창에 중요 알림 표시</string>
+    <string name="high_touch_sensitivity_title">터치 감도 높이기</string>
+    <string name="high_touch_sensitivity_summary">장갑을 착용해도 터치할 수 있도록 터치스크린 감도를 향상</string>
+    <string name="tethering_allow_vpn_upstreams_title">클라이언트가 VPN을 사용하도록 허용</string>
+    <string name="tethering_allow_vpn_upstreams_summary">핫스팟이나 테더링 클라이언트가 연결성 향상을 위해 내 장치의 VPN 연결을 사용하도록 허용합니다.</string>
+    <string name="increasing_ring_volume_option_title">점점 커지는 벨 소리</string>
+    <string name="increasing_ring_min_volume_title">시작 벨소리</string>
+    <string name="increasing_ring_ramp_up_time_title">소리 커짐 시간</string>
+    <string name="lockscreen_media_art_title">앨범 커버 이미지 표시</string>
+    <string name="lock_settings_picker_pattern_size_message">패턴의 크기를 선택하세요</string>
+    <string name="lockpattern_settings_enable_error_path_title">패턴 오류 표시</string>
+    <string name="lockpattern_settings_enable_dots_title">패턴 점 표시</string>
+    <string name="max_refresh_rate_title">최대 화면 재생률</string>
+    <string name="min_refresh_rate_title">최소 재생률</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">태블릿 앞면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">기기 앞면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">휴대전화 앞면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">태블릿 뒷면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">기기 뒷면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">휴대전화 뒷면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">태블릿 옆면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">기기 옆면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">휴대전화 옆면에 지문 센서가 있습니다.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">태블릿 앞면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">기기 앞면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">휴대전화 앞면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">태블릿 뒷면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">기기 뒷면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">휴대전화 뒷면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">태블릿 옆면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">기기 옆면에 있는 지문 센서를 누르세요.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">휴대전화 옆면에 있는 지문 센서를 누르세요.</string>
+    <string name="show_navbar_hint_title">내비게이션 힌트</string>
+    <string name="show_navbar_hint_summary">화면 아래에 내비게이션 힌트 바를 표시합니다.</string>
+    <string name="app_notification_sound_timeout_title">알림 소리 최소 간격</string>
+    <string name="app_notification_sound_timeout_summary_template">매 <xliff:g id="duration">%1$s</xliff:g>마다 한 번씩만 소리 또는 진동을 허용합니다</string>
+    <string name="app_notification_sound_timeout_value_none">제한 없음</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10초</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30초</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1분</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5분</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10분</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30분</string>
+    <string name="auto_brightness_one_shot_title">화면이 켜질 때 한 번만 밝기 조절</string>
+    <string name="auto_brightness_one_shot_summary">자동 밝기 조절을 화면이 켜질 때 단 한 번만 실행합니다.</string>
+    <string name="data_usage_app_restrict_all">네트워크 액세스 허용</string>
+    <string name="data_usage_app_restrict_all_summary">네트워크 사용 허용</string>
+    <string name="data_usage_app_restrict_mobile">모바일 데이터</string>
+    <string name="data_usage_app_restrict_mobile_summary">모바일 데이터 사용 허용</string>
+    <string name="data_usage_app_restrict_vpn">VPN 데이터</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN 데이터 사용 허용</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 데이터</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi 데이터 사용 허용</string>
+    <string name="unlock_scramble_pin_layout_title">레이아웃 섞기</string>
+    <string name="unlock_scramble_pin_layout_summary">장치를 잠금 해제할 때 PIN 레이아웃 섞기</string>
+    <string name="proximity_wake_title">실수로 화면 켜기 방지</string>
+    <string name="proximity_wake_summary">화면을 켜기 전에 근접 센서 확인</string>
+    <string name="touchscreen_gesture_settings_title">터치스크린 제스처</string>
+    <string name="touchscreen_gesture_settings_summary">다양한 터치스크린 제스처를 사용하여 빠른 작업 실행</string>
+    <string name="touchscreen_hovering_title">터치스크린 호버링</string>
+    <string name="touchscreen_hovering_summary">웹 브라우저나 원격 데스크톱과 같은 앱에서 마우스처럼 화면에 호버링하여 사용할 수 있습니다.</string>
+    <string name="wake_when_plugged_or_unplugged_title">충전 시 켜짐</string>
+    <string name="wake_when_plugged_or_unplugged_summary">전원이 연결되거나 분리될 때 화면 켜기</string>
+    <string name="fast_charging_title">고속 충전</string>
+    <string name="fast_charging_summary">충전 중에 발생하는 열을 줄여 배터리 수명을 연장하려면 비활성화</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">지문 인식 센서를 길게 눌러 휴대 전화 잠금 해제</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">지문 인식 센서를 길게 눌러 태블릿 잠금 해제</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">지문 인식 센서를 길게 눌러 기기 잠금 해제</string>
+    <string name="ambient_display_screen_off_udfps_summary">화면을 켜고 잠금을 해제하려면, 화면 아래에 있는 지문 인식 센서를 길게 누르세요.</string>
+    <string name="storage_warning_internal">경고: 이 옵션은 제대로 작동하지 않거나 데이터 손실이 일어날 가능성이 있으므로 권장하지 않습니다!</string>
+</resources>
diff --git a/res/values-ku/cm_strings.xml b/res/values-ku/cm_strings.xml
new file mode 100644
index 0000000..c8d9ea2
--- /dev/null
+++ b/res/values-ku/cm_strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">یاسای وەشانەکە</string>
+    <string name="show_dev_on_cm">تۆ ڕێکخستنی گەشەپێدەریت چالاککرد!</string>
+    <string name="show_dev_already_cm">پێویست ناکا، تۆ پێشتر چالاکت کردوە.</string>
+    <string name="high_touch_sensitivity_title">هەستیاری ساوانی بەرز</string>
+    <string name="high_touch_sensitivity_summary">هەستیاری ساوڕوونما برز بکەوە، ئەوە ئەتوانرێ بەکاربهێنرێت کاتێک دەستەوانت لە دەستدایە</string>
+    <string name="increasing_ring_volume_option_title">زیادکردنی دەنگی زەنگ</string>
+    <string name="increasing_ring_min_volume_title">دەستپێکردنی دەنگ</string>
+    <string name="increasing_ring_ramp_up_time_title">هەڵسانی کات</string>
+    <string name="lockpattern_settings_enable_error_path_title">پیشاندانی هەڵەی چنراو</string>
+    <string name="lockpattern_settings_enable_dots_title">پیشاندانی خاڵەکانی چنراو</string>
+    <string name="unlock_scramble_pin_layout_title">ته‌خته‌ی تێکه‌ڵ</string>
+    <string name="unlock_scramble_pin_layout_summary">ته‌خته‌ی PIN تێکه‌ڵ له‌کاتی کردنه‌وه‌ی ئامێره‌که‌</string>
+    <string name="proximity_wake_title">قه‌ده‌غه‌کردنی هه‌ستانی ڕێکه‌وت</string>
+    <string name="touchscreen_hovering_title">دەستلێدانی شاشە سوڕانەوە</string>
+    <string name="touchscreen_hovering_summary">هەمیشە شاشەکە بسوڕێنەوە وەکو مشک لە وێبگەری ماڵپەر، ڕومێزی دور،هتد</string>
+    <string name="wake_when_plugged_or_unplugged_title">هەڵسان لە پلاگ</string>
+    <string name="wake_when_plugged_or_unplugged_summary">کردنەوەی ڕۆشای ڕوونماکە لە کاتی پەیوەندکردن یان پچڕانی لەکارەبا</string>
+</resources>
diff --git a/res/values-ky/cm_strings.xml b/res/values-ky/cm_strings.xml
new file mode 100644
index 0000000..19fad56
--- /dev/null
+++ b/res/values-ky/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Айрым мазмундар үчүн жаңыртуу ылдамдыгын 60 Герцтен %1$d Герцке көтөрөт. Батареянын колдонулушун жогорулатат.</string>
+</resources>
diff --git a/res/values-lo/cm_strings.xml b/res/values-lo/cm_strings.xml
new file mode 100644
index 0000000..984f9f0
--- /dev/null
+++ b/res/values-lo/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">ເພີ່ມຣີເຟຣຊເຣດຈາກ 60 ເປັນ %1$d Hz ສຳລັບບາງເນື້ອຫາໂດຍອັດຕະໂນມັດ. ເພີ່ມການນຳໃຊ້ແບັດເຕີຣີ.</string>
+</resources>
diff --git a/res/values-lt/cm_strings.xml b/res/values-lt/cm_strings.xml
new file mode 100644
index 0000000..f062e07
--- /dev/null
+++ b/res/values-lt/cm_strings.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">Teisinė „LineageOS“ informacija</string>
+    <string name="show_dev_on_cm">Jūs įgalinote kūrėjo parinktys!</string>
+    <string name="show_dev_already_cm">Nereikia, jūs jau įgalinote kūrėjo parinktys.</string>
+    <string name="peak_refresh_rate_summary_custom">Automatiškai padidinamas kai kurio turinio atnaujinimo dažnis nuo 60 iki %1$d Hz. Vartojama daugiau akumuliatoriaus energijos.</string>
+    <string name="high_touch_sensitivity_title">Didelis lietimo jautrumas</string>
+    <string name="high_touch_sensitivity_summary">Padidinti liečiamojo ekrano jautrumą tam, kad juo būtų galima naudotis dėvint pirštines</string>
+    <string name="increasing_ring_volume_option_title">Didėjantis skambėjimo garsumas</string>
+    <string name="increasing_ring_min_volume_title">Pradinis garsumas</string>
+    <string name="increasing_ring_ramp_up_time_title">Didėjimo laikas</string>
+    <string name="lockpattern_settings_enable_error_path_title">Rodyti modelio klaidą</string>
+    <string name="lockpattern_settings_enable_dots_title">Rodyti modelio taškus</string>
+    <string name="unlock_scramble_pin_layout_title">Sumaišyti išdėstymą</string>
+    <string name="unlock_scramble_pin_layout_summary">Atrakinant įrenginį sumaišyti PIN išdėstymą</string>
+    <string name="proximity_wake_title">Išvengti atsitiktinio pažadinimo</string>
+    <string name="touchscreen_hovering_title">Jutiklinio ekrano slankiojimas</string>
+    <string name="touchscreen_hovering_summary">Leidžia slankioti ekraną kaip pelę internetinėse naršyklėse, nuotoliniuose staliniuose kompiuteriuose ir kt.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Pažadinti, kai prijungiama</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Įjungti ekraną, kai prijungiamas ar atjungiamas maitinimo šaltinis</string>
+</resources>
diff --git a/res/values-lu/cm_strings.xml b/res/values-lu/cm_strings.xml
new file mode 100644
index 0000000..b207ed8
--- /dev/null
+++ b/res/values-lu/cm_strings.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">Rechtlech Hiweiser iwwer LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du bass <xliff:g id="step_count">%1$d</xliff:g> Schrëtt dovun ewech, d\'Entwéckleroptiounen z\'aktivéieren.</item>
+        <item quantity="other">Du bass <xliff:g id="step_count">%1$d</xliff:g> Schrëtter dovun ewech, d\'Entwéckleroptiounen z\'aktivéieren.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du hues d\'Entwéckleroptiounen aktivéiert!</string>
+    <string name="show_dev_already_cm">Net néideg, du hues d\'Entwécklungsoptioune schonn aktivéiert.</string>
+    <string name="high_touch_sensitivity_title">Héich Beréierungsempfindlechkeet</string>
+    <string name="high_touch_sensitivity_summary">Touch-Empfindlechkeet erhéijen, fir den Touchscreen och mat Hännsche benotzen ze kënnen</string>
+    <string name="increasing_ring_volume_option_title">Usteigend Schelltounlautstäerkt</string>
+    <string name="increasing_ring_min_volume_title">Start-Lautstäerkt</string>
+    <string name="increasing_ring_ramp_up_time_title">Ulafzäit</string>
+    <string name="lockpattern_settings_enable_error_path_title">Musterfeeler uweisen</string>
+    <string name="lockpattern_settings_enable_dots_title">Musterpunkten uweisen</string>
+    <string name="unlock_scramble_pin_layout_title">Zoufälleg Unuerdnung</string>
+    <string name="unlock_scramble_pin_layout_summary">Bei all Entspärversuch d\'Zifferereiefolleg zoufälleg nei wielen</string>
+    <string name="proximity_wake_title">Onbeofsiichtegt waakreg maache verhënneren</string>
+    <string name="touchscreen_hovering_title">Iwwerschwiewe vum Touchscreen</string>
+    <string name="touchscreen_hovering_summary">Erméiglecht et, mam Fanger iwwer dem Schierm ze schwieren an den Zeiger wéi mat enger Maus ze beweegen</string>
+    <string name="wake_when_plugged_or_unplugged_title">Beim Astieche waakreg maachen</string>
+    <string name="wake_when_plugged_or_unplugged_summary">De Schierm uschalte wann eng Stroumquell ugeschloss oder getrennt gëtt</string>
+</resources>
diff --git a/res/values-lv/cm_strings.xml b/res/values-lv/cm_strings.xml
new file mode 100644
index 0000000..356a2cf
--- /dev/null
+++ b/res/values-lv/cm_strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS atbildība</string>
+    <string name="peak_refresh_rate_summary_custom">Noteikta satura atsvaidzināšanas biežums tiek automātiski palielināts no 60 līdz %1$d Hz. Tas palielina akumulatora lietojumu.</string>
+    <string name="high_touch_sensitivity_title">Augsta pieskāriena jutība</string>
+    <string name="high_touch_sensitivity_summary">Palielināt skārienekrāna jutību, lai to varētu lietot, valkājot cimdus</string>
+    <string name="unlock_scramble_pin_layout_title">Samaisīt izkārtojumu</string>
+    <string name="unlock_scramble_pin_layout_summary">Atslēdzot iekārtu, samaisīt PIN izkārtojumu</string>
+    <string name="proximity_wake_title">Novērsiet nejaušu pamodināšanu</string>
+    <string name="wake_when_plugged_or_unplugged_title">Pamodināt, iespraužot vadu</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Pievienojot, vai atvienojot no barošanas avota, ieslēgt ekrānu</string>
+</resources>
diff --git a/res/values-mk/cm_strings.xml b/res/values-mk/cm_strings.xml
new file mode 100644
index 0000000..1a9e079
--- /dev/null
+++ b/res/values-mk/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Автоматски ја зголемува зачестеноста на освежување од 60 на %1$d Hz за некои содржини. Го зголемува користењето на батеријата.</string>
+</resources>
diff --git a/res/values-ml/cm_strings.xml b/res/values-ml/cm_strings.xml
new file mode 100644
index 0000000..50c68c1
--- /dev/null
+++ b/res/values-ml/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS ലീഗല്‍</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കുന്നതിന് നിങ്ങള്‍ %1$d ഘട്ടം അകലെയാണ്.</item>
+        <item quantity="other">ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കുന്നതിന് നിങ്ങള്‍ <xliff:g id="step_count">%1$d</xliff:g> ഘട്ടങ്ങൾ അകലെയാണ്.</item>
+    </plurals>
+    <string name="show_dev_on_cm">നിങ്ങൾ ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കി!</string>
+    <string name="show_dev_already_cm">ആവശ്യമില്ല, നിങ്ങൾ ഇതിനകം ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കി.</string>
+    <string name="peak_refresh_rate_summary_custom">ചില ഉള്ളടക്കങ്ങളുടെ പുതുക്കൽ നിരക്ക് 60 Hz-ൽ നിന്നും %1$d Hz-ലേക്ക് സ്വയമേവ ഉയർത്തുന്നു. ബാറ്ററി ഉപയോഗം വർദ്ധിപ്പിക്കുന്നു.</string>
+    <string name="high_touch_sensitivity_title">ഉയര്‍ന്ന സ്പര്‍ശന സംവേദനക്ഷമത</string>
+    <string name="high_touch_sensitivity_summary">കയ്യുറകൾ ധരിച്ചിരിക്കുമ്പോള്‍ ഉപയോഗിക്കുന്നതിനായി ടച്ച്സ്ക്രീൻ സെന്‍സിറ്റിവിറ്റി വര്‍ദ്ധിപ്പിക്കുക</string>
+    <string name="increasing_ring_volume_option_title">വര്‍ദ്ധിക്കുന്ന റിംഗ് വോളിയം</string>
+    <string name="increasing_ring_min_volume_title">വോളിയം ആരംഭിക്കുക</string>
+    <string name="increasing_ring_ramp_up_time_title">റാംപ്-അപ്പ് സമയം</string>
+    <string name="lockpattern_settings_enable_error_path_title">പാറ്റേൺ പിശക് ദൃശ്യമാക്കുക</string>
+    <string name="lockpattern_settings_enable_dots_title">ഡോട്ടുകൾ പാറ്റേൺ ദൃശ്യമാക്കുക</string>
+    <string name="unlock_scramble_pin_layout_title">സ്ക്രാമ്പിള്‍ ചെയ്ത ലേഔട്ട്</string>
+    <string name="unlock_scramble_pin_layout_summary">ഉപകരണം അൺലോക്ക് ചെയ്യുമ്പോൾ PIN ലേയൌട്ട് സ്ക്രാമ്പിള്‍ ചെയ്യുക</string>
+    <string name="proximity_wake_title">യാദൃച്ഛികമായി സജീവമാകുന്നത് തടയുക</string>
+    <string name="touchscreen_hovering_title">ടച്ച്സ്ക്രീൻ ഹോവറിംഗ്</string>
+    <string name="touchscreen_hovering_summary">വെബ് ബ്രൌസറുകള്‍, റിമോട്ട് ഡെസ്ക്ടോപ്പുകള്‍ തുടങ്ങിയവയിലെ മൌസ് എന്നപോലെ സ്ക്രീന്‍ ഹോവര്‍ ചെയ്യാന്‍ നിങ്ങളെ അനുവദിക്കുന്നു.</string>
+    <string name="wake_when_plugged_or_unplugged_title">വേക്ക് ഓൺ പ്ലഗ്</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ഒരു ഊര്‍ജ്ജ സ്രോതസ്സില്‍ ബന്ധിപ്പിക്കുമ്പോള്‍ അല്ലെങ്കില്‍ വിച്ഛേദിക്കുമ്പോൾ സ്ക്രീന്‍ ഓണ്‍ ചെയ്യുക</string>
+</resources>
diff --git a/res/values-mn/cm_strings.xml b/res/values-mn/cm_strings.xml
new file mode 100644
index 0000000..5fc5121
--- /dev/null
+++ b/res/values-mn/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Зарим контентын сэргээх хурдыг автоматаар 60-с %1$d Гц болгож өсгөнө. Батарей ашиглалтыг нэмэгдүүлнэ.</string>
+</resources>
diff --git a/res/values-mr/cm_strings.xml b/res/values-mr/cm_strings.xml
new file mode 100644
index 0000000..bc8b5bf
--- /dev/null
+++ b/res/values-mr/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS लिगल</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">विकास सेटिंग्ज सक्षम करण्यापासून तुम्ही <xliff:g id="step_count">%1$d</xliff:g> पायरी अनुपस्थित आहात.</item>
+        <item quantity="other">विकास सेटिंग्ज सक्षम करण्यापासून तुम्ही <xliff:g id="step_count">%1$d</xliff:g> पायऱ्या अनुपस्थित आहात.</item>
+    </plurals>
+    <string name="show_dev_on_cm">तुम्ही विकास सेटिंग्ज सक्षम केली आहेत!</string>
+    <string name="show_dev_already_cm">गरज नाही, तुम्ही आधीच विकास सेटिंग्ज सक्षम केली आहेत.</string>
+    <string name="peak_refresh_rate_summary_custom">काही आशयासाठी रिफ्रेश रेट ६० ते ९० Hz पर्यंत आपोआप वाढवते. बॅटरी वापर वाढवते.</string>
+    <string name="high_touch_sensitivity_title">उच्च स्पर्श संवेदनक्षमता</string>
+    <string name="high_touch_sensitivity_summary">टचस्क्रीन संवेदनक्षमता वाढवा म्हणजे ग्लोव्ज घातलेले असताना ती वापरता येईल</string>
+    <string name="increasing_ring_volume_option_title">रिंग ध्वनी वाढवणे</string>
+    <string name="increasing_ring_min_volume_title">प्रारंभ ध्वनी</string>
+    <string name="increasing_ring_ramp_up_time_title">रॅम्प-अप वेळ</string>
+    <string name="lockpattern_settings_enable_error_path_title">पॅटर्न त्रुटी दर्शवा</string>
+    <string name="lockpattern_settings_enable_dots_title">पॅटर्न डॉट्स दर्शवा</string>
+    <string name="unlock_scramble_pin_layout_title">मांडणी स्क्रॅम्बल करा</string>
+    <string name="unlock_scramble_pin_layout_summary">डिव्हाइस अनलॉक करताना पिन मांडणी स्क्रॅम्बल करा</string>
+    <string name="proximity_wake_title">अपघाताने जागे करण्यास प्रतिबंध करा</string>
+    <string name="touchscreen_hovering_title">टचस्क्रीन हॉवरिंग</string>
+    <string name="touchscreen_hovering_summary">वेब ब्राउझर्स, दूरस्थ डेस्कटॉप्स इ. मध्ये तुम्हाला माउसप्रमाणे स्क्रीनवर हॉवर करू देते</string>
+    <string name="wake_when_plugged_or_unplugged_title">जागे व्हा प्लग</string>
+    <string name="wake_when_plugged_or_unplugged_summary">पॉवर स्त्रोत कनेक्ट किंवा डिस्कनेक्ट करताना हा स्क्रीन चालू करा</string>
+</resources>
diff --git a/res/values-ms/cm_strings.xml b/res/values-ms/cm_strings.xml
new file mode 100644
index 0000000..fa154a3
--- /dev/null
+++ b/res/values-ms/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Meningkatkan kadar muat semula daripada 60 kepada %1$d Hz untuk sesetengah kandungan secara automatik. Meningkatkan penggunaan bateri.</string>
+</resources>
diff --git a/res/values-my/cm_strings.xml b/res/values-my/cm_strings.xml
new file mode 100644
index 0000000..f231e21
--- /dev/null
+++ b/res/values-my/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">အကြောင်းအရာအချို့အတွက် ပြန်လည်စတင်နှုန်းကို ၆၀ မှ ၉၀ Hz သို့ အလိုအလျောက် တိုးပေးသည်။ ဘက်ထရီ အသုံးပြုမှု တိုးလာပါမည်။</string>
+</resources>
diff --git a/res/values-nb/cm_strings.xml b/res/values-nb/cm_strings.xml
new file mode 100644
index 0000000..20e8e61
--- /dev/null
+++ b/res/values-nb/cm_strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS juridisk</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du er nå <xliff:g id="step_count"> %1$d</xliff:g> skritt fra aktivering av utviklerinnstillinger.</item>
+        <item quantity="other">Du er nå <xliff:g id="step_count"> %1$d</xliff:g> skritt fra aktivering av utviklerinnstillinger.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du har aktivert innstillinger for utviklere!</string>
+    <string name="show_dev_already_cm">Ikke nødvendig, du allerede har aktivert utviklingsinnstillinger.</string>
+    <string name="peak_refresh_rate_summary_custom">Øker oppdateringsfrekvensen automatisk fra 60 til %1$d Hz for noe innhold. Øker batteribruken.</string>
+    <string name="heads_up_notifications_enabled_title">Varselvindu</string>
+    <string name="heads_up_notifications_enabled_summary">Vis prioriterte varsler i et lite flytende vindu</string>
+    <string name="high_touch_sensitivity_title">Høy touch sensitivitet</string>
+    <string name="high_touch_sensitivity_summary">Øk berøringsskjermens følsomhet slik at den kan brukes med hansker</string>
+    <string name="increasing_ring_volume_option_title">Økende ringevolum</string>
+    <string name="increasing_ring_min_volume_title">Start volum</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up tid</string>
+    <string name="lockscreen_media_art_title">Vis media coverbilde</string>
+    <string name="lock_settings_picker_pattern_size_message">Velg størrelse på mønster</string>
+    <string name="lockpattern_settings_enable_error_path_title">Vis feil</string>
+    <string name="lockpattern_settings_enable_dots_title">Vis mønster prikker</string>
+    <string name="app_notification_sound_timeout_title">Minimum tid imellom varsellyder</string>
+    <string name="app_notification_sound_timeout_summary_template">Gi lyder og vibrasjoner bare lov å ringe hvert <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Ingen begrensning</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutt</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutter</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutter</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutter</string>
+    <string name="unlock_scramble_pin_layout_title">Endre layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Endre PIN layout når enheten låses opp</string>
+    <string name="proximity_wake_title">Hindre utilsiktet vekking</string>
+    <string name="touchscreen_hovering_title">Berøringsskjerm hovring</string>
+    <string name="touchscreen_hovering_summary">Lar deg hovre over skjermen som en mus på en nettleser, eksternt skrivebord osv</string>
+    <string name="wake_when_plugged_or_unplugged_title">Våkne ved tilkobling av strøm</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Skjermen slås på når du kobler til eller kobler fra en strømkilde</string>
+</resources>
diff --git a/res/values-ne/cm_strings.xml b/res/values-ne/cm_strings.xml
new file mode 100644
index 0000000..49e589e
--- /dev/null
+++ b/res/values-ne/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">केही सामग्रीका लागि रिफ्रेस रेट स्वतः ६० हर्ट्जबाट बढाएर ९० हर्ट्ज बनाउँछ। ब्याट्रीको उपयोग बढाउँछ।</string>
+</resources>
diff --git a/res/values-nl/cm_strings.xml b/res/values-nl/cm_strings.xml
new file mode 100644
index 0000000..6e27545
--- /dev/null
+++ b/res/values-nl/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extra\'s</string>
+    <string name="advanced_keyboard_settings_title">Geavanceerde instellingen</string>
+    <string name="adb_enable_root">Geroote foutopsporing</string>
+    <string name="adb_enable_summary_root">Uitvoeren van Android foutopsporing als root toestaan</string>
+    <string name="backup_transport_setting_label">Wijzig back-up provider</string>
+    <string name="backup_transport_title">Kies back-up provider</string>
+    <string name="berry_black_theme_title">Puur zwart</string>
+    <string name="berry_black_theme_summary">Puur zwarte achtergrond voor donker thema</string>
+    <string name="lineagelicense_title">Juridische informatie van LineageOS</string>
+    <string name="device_info_protected_single_press">Tik om info te tonen</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">U bent nog <xliff:g id="step_count">%1$d</xliff:g> stap verwijderd van de opties voor ontwikkelaars.</item>
+        <item quantity="other">U bent nog <xliff:g id="step_count">%1$d</xliff:g> stappen verwijderd van de opties voor ontwikkelaars.</item>
+    </plurals>
+    <string name="show_dev_on_cm">U hebt de opties voor ontwikkelaars ingeschakeld!</string>
+    <string name="show_dev_already_cm">Niet nodig, u hebt de opties voor ontwikkelaars al ingeschakeld.</string>
+    <string name="peak_refresh_rate_summary_custom">Hiermee wordt de vernieuwingssnelheid automatisch verhoogd van 60 naar %1$d Hz voor bepaalde content. Het batterijgebruik neemt toe.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tikken om te slapen</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dubbeltikken op de statusbalk of schermvergrendeling om het scherm uit te schakelen</string>
+    <string name="high_touch_polling_rate_title">Hoge touch polling snelheid</string>
+    <string name="high_touch_polling_rate_summary">Verhoog touchscreen polling snelheid</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Prioriteitsmeldingen weergeven in klein zwevend venster</string>
+    <string name="high_touch_sensitivity_title">Hoge aanraakgevoeligheid</string>
+    <string name="high_touch_sensitivity_summary">Gevoeligheid van het scherm verhogen, zodat het bediend kan worden met handschoenen</string>
+    <string name="tethering_allow_vpn_upstreams_title">Clients toestaan om VPN\'s te gebruiken</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Sta hotspot-gebruikers toe om de VPN-verbindingen van dit apparaat te gebruiken om te uploaden</string>
+    <string name="increasing_ring_volume_option_title">In volume toenemende beltoon</string>
+    <string name="increasing_ring_min_volume_title">Startvolume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ophoogtijd</string>
+    <string name="lockscreen_media_art_title">Albumhoezen weergeven</string>
+    <string name="lock_settings_picker_pattern_size_message">Grootte patroon kiezen</string>
+    <string name="lockpattern_settings_enable_error_path_title">Patroonfout weergeven</string>
+    <string name="lockpattern_settings_enable_dots_title">Patroonknoppen weergeven</string>
+    <string name="max_refresh_rate_title">Piek vernieuwingsfrequentie</string>
+    <string name="min_refresh_rate_title">Minimale verversingsfrequentie</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Vind de vingerafdruksensor op de voorkant van uw tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Vind de vingerafdruksensor op de voorkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Vind de vingerafdruksensor op de voorkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Vind de vingerafdruksensor op de achterkant van uw tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Vind de vingerafdrukscanner aan de linkerkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Vind de vingerafdruksensor op de achterkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Vind de vingerafdruksensor op de zijkant van uw tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Vind de vingerafdruksensor aan de zijkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Vind de vingerafdruksensor op de zijkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Raak de sensor aan op de voorkant van uw tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Raak de sensor aan op de voorkant van uw tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Raak de sensor aan op de voorkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Raak de sensor aan op de achterkant van uw tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Raak de sensor aan op de achterkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Raak de sensor aan op de achterkant van uw telefoon.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Raak de sensor aan de zijkant van uw tablet aan.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Raak de sensor aan de zijkant van uw apparaat.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Raak de sensor aan de zijkant van uw telefoon.</string>
+    <string name="show_navbar_hint_title">Navigatie hint</string>
+    <string name="show_navbar_hint_summary">Toon navigatiehintbalk aan de onderkant van het scherm</string>
+    <string name="app_notification_sound_timeout_title">Minimale tijd tussen meldingsgeluiden</string>
+    <string name="app_notification_sound_timeout_summary_template">Geluid of trillen niet meer dan één keer per <xliff:g id="duration">%1$s</xliff:g> toestaan</string>
+    <string name="app_notification_sound_timeout_value_none">Geen beperking</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconden</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconden</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuten</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuten</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuten</string>
+    <string name="auto_brightness_one_shot_title">Eén schot automatische helderheid</string>
+    <string name="auto_brightness_one_shot_summary">Helderheid aanpassing zal alleen plaatsvinden op het moment dat het scherm is ingeschakeld</string>
+    <string name="data_usage_app_restrict_all">Netwerktoegang toestaan</string>
+    <string name="data_usage_app_restrict_all_summary">Schakel netwerkgebruik in</string>
+    <string name="data_usage_app_restrict_mobile">Mobiele data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Gebruik van mobiele data inschakelen</string>
+    <string name="data_usage_app_restrict_vpn">VPN-gegevens</string>
+    <string name="data_usage_app_restrict_vpn_summary">Toegang tot VPN-gegevens toestaan</string>
+    <string name="data_usage_app_restrict_wifi">Gegevens via wifi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Gebruik van gegevens via wifi inschakelen</string>
+    <string name="unlock_scramble_pin_layout_title">Lay-out husselen</string>
+    <string name="unlock_scramble_pin_layout_summary">PIN-lay-out door elkaar husselen bij apparaat ontgrendelen</string>
+    <string name="proximity_wake_title">Per ongeluk ontwaken voorkomen</string>
+    <string name="proximity_wake_summary">Nabijheidssensor gebruiken voorafgaand aan ontwaken van scherm</string>
+    <string name="touchscreen_gesture_settings_title">Schermgebaren</string>
+    <string name="touchscreen_gesture_settings_summary">Diverse schermgebaren gebruiken voor snelle acties</string>
+    <string name="touchscreen_hovering_title">Zweven boven scherm</string>
+    <string name="touchscreen_hovering_summary">Met uw vinger boven het zwerm zweven, zoals een muis in browsers, bureaublad op afstand, etc.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Ontwaken door lader</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Scherm aan bij het aansluiten of loskoppelen van een lader</string>
+    <string name="fast_charging_title">Snelladen</string>
+    <string name="fast_charging_summary">Schakel uit om de warmteproductie van het apparaat te verminderen tijdens het opladen of om de levensduur van de batterij te verlengen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Vingerafdruksensor lang indrukken om telefoon te ontgrendelen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Vingerafdruksensor lang indrukken om tablet te ontgrendelen</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Vingerafdruksensor lang indrukken om apparaat te ontgrendelen</string>
+    <string name="ambient_display_screen_off_udfps_summary">Houdt de vingerafdruksensor lang ingedrukt om het scherm aan te zetten en te ontgrendelen.</string>
+    <string name="storage_warning_internal">Waarschuwing: Deze optie werkt mogelijk niet goed of leidt tot gegevensverlies en wordt daarom niet aangeraden!</string>
+</resources>
diff --git a/res/values-or/cm_strings.xml b/res/values-or/cm_strings.xml
new file mode 100644
index 0000000..204d2cc
--- /dev/null
+++ b/res/values-or/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">ସିଆନୋଜେନ୍‍ମୋଡ୍‍ ଲିଗାଲ୍‍</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">ଉନ୍ନତି ସେଟିଂସମୂହ‍ ସଷମ କରାଯିବା ଠାରୁ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="step_count">%1$d</xliff:g> ପର୍ଯ୍ୟାୟ ଦୂରରେ ଅଛନ୍ତି।</item>
+        <item quantity="other">ଉନ୍ନତି ସେଟିଂସମୂହ ସଷମ କରାଯିବା ଠାରୁ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="step_count">%1$d</xliff:g> ପର୍ଯ୍ୟାୟ ଦୂରରେ ଅଛନ୍ତି।</item>
+    </plurals>
+    <string name="show_dev_on_cm">ଆପଣ ଉନ୍ନତି ସେଟିଂସ୍‍ ସଷମ କରିଛନ୍ତି!</string>
+    <string name="show_dev_already_cm">ଆବଶ୍ୟକ ନାହିଁ, ଆପଣ ଆଗରୁ ଉନ୍ନତି ସେଟିଂସମୂହ ସଷମ କରିସାରିଛନ୍ତି।</string>
+    <string name="peak_refresh_rate_summary_custom">କିଛି ବିଷୟବସ୍ତୁ ପାଇଁ ରିଫ୍ରେସ୍ ରେଟ୍ ସ୍ୱଚାଳିତ ଭାବରେ 60ରୁ %1$d Hz ପର୍ଯ୍ୟନ୍ତ ବଢ଼ାଇଥାଏ। ବ୍ୟାଟେରୀର ବ୍ୟବହାର ବଢ଼ାଇଥାଏ।</string>
+    <string name="high_touch_sensitivity_title">ଅଧିକ ସ୍ପର୍ଶ ତୀବ୍ରତା</string>
+    <string name="high_touch_sensitivity_summary">ଟଚ୍‍ସ୍କ୍ରିନ୍‍ ତୀବ୍ରତା ବଢାନ୍ତୁ ଯାହା ଫଳରେ ତାହା ଗ୍ଲୋବ୍ସ ପିଂଧିବା ସମୟରେ ବ୍ୟବହାର କରାଯାଇପାରିବ</string>
+    <string name="increasing_ring_volume_option_title">ରିଙ୍ଗ୍‍ ଭୋଲ୍ୟୁମ୍‍ ବଢାଯାଉଛି</string>
+    <string name="increasing_ring_min_volume_title">ଭୋଲ୍ୟୁମ୍‍ ଆରଭ କରନ୍ତୁ</string>
+    <string name="increasing_ring_ramp_up_time_title">ସମୟ ରାମ୍ପ୍‍-ଅପ୍‍ କରନ୍ତୁ</string>
+    <string name="lockpattern_settings_enable_error_path_title">ପ୍ୟାଟର୍ଣ୍ଣ ତ୍ରୁଟି ଦେଖାନ୍ତୁ</string>
+    <string name="lockpattern_settings_enable_dots_title">ପାଟର୍ଣ୍ଣ ଡ୍ଟ୍ସ ଦେଖାନ୍ତୁ</string>
+    <string name="unlock_scramble_pin_layout_title">ସ୍କ୍ରାମେବୁଲ୍‍ ଲେଆଉଟ୍‍</string>
+    <string name="unlock_scramble_pin_layout_summary">ଡିଭାଇସ୍‍ ଅ୍ନ୍‍ଲକ୍‍ କରିବା ସମୟରେ ସ୍କ୍ରାମେବୁଲ୍ PIN ଲେଆଉଟ୍‍</string>
+    <string name="proximity_wake_title">ର୍ଆକ୍ସିଡେଂଟାଲ୍‍ ୱେକ୍‍-ଅପ୍‍ ପ୍ରତିରୋଧ କରନ୍ତୁ</string>
+    <string name="touchscreen_hovering_title">ଟଚ୍‍ସ୍କ୍ରିନ୍‍ ହୋଭରିଂ</string>
+    <string name="touchscreen_hovering_summary">ୱେବ୍‍ ବ୍ରାଉଜର୍‍, ରିମୋ‍ ଡେସ୍କଟପ୍ ଇତ୍ୟା୍ଦି‍ରେ ମାଉସ୍‍ ଭଳି ଆପଣଙ୍କୁ ସ୍କ୍ରିନ୍‍ରେ ହୋଭର୍‍ ପାଇଁ ଅନୁମତି ଦିଅ</string>
+    <string name="wake_when_plugged_or_unplugged_title">ପ୍ଲଗ୍‍କୁ ଉଠାନ୍ତୁ</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ଏକ ପାୱାର୍‍ ଉତ୍ସ ସଂଯୋଗ ବା ବିଛିନ୍ନ କରିବା ସମୟରେ ସ୍କ୍ରିନ୍‍ ଅନ୍‍ କରନ୍ତୁ</string>
+</resources>
diff --git a/res/values-pa/cm_strings.xml b/res/values-pa/cm_strings.xml
new file mode 100644
index 0000000..3da1740
--- /dev/null
+++ b/res/values-pa/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕੁਝ ਸਮੱਗਰੀਆਂ ਲਈ ਰਿਫ੍ਰੈਸ਼ ਦਰ ਨੂੰ 60 ਤੋਂ ਵਧਾ ਕੇ %1$d Hz ਕਰ ਦਿੰਦਾ ਹੈ। ਬੈਟਰੀ ਵਰਤੋਂ ਵੱਧ ਜਾਂਦੀ ਹੈ।</string>
+</resources>
diff --git a/res/values-pl/cm_strings.xml b/res/values-pl/cm_strings.xml
new file mode 100644
index 0000000..3bdc84e
--- /dev/null
+++ b/res/values-pl/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Dodatki</string>
+    <string name="advanced_keyboard_settings_title">Ustawienia zaawansowane</string>
+    <string name="adb_enable_root">Debugowanie jako root</string>
+    <string name="adb_enable_summary_root">Zezwól na debugowanie Androida jako root</string>
+    <string name="backup_transport_setting_label">Zmień dostawcę kopii zapasowej</string>
+    <string name="backup_transport_title">Wybierz dostawcę kopii zapasowej</string>
+    <string name="berry_black_theme_title">Czysta czerń</string>
+    <string name="berry_black_theme_summary">Czysta czerń tła dla ciemnego motywu</string>
+    <string name="lineagelicense_title">Informacje prawne LineageOS</string>
+    <string name="device_info_protected_single_press">Dotknij, aby wyświetlić informacje</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Jesteś o <xliff:g id="step_count">%1$d</xliff:g> krok od włączenia ustawień programisty.</item>
+        <item quantity="few">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroki od włączenia ustawień programisty.</item>
+        <item quantity="many">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroków od włączenia ustawień programisty.</item>
+        <item quantity="other">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroków od włączenia ustawień programisty.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Aktywowano opcje programistyczne!</string>
+    <string name="show_dev_already_cm">Wystarczy, już jesteś programistą.</string>
+    <string name="peak_refresh_rate_summary_custom">W przypadku niektórych treści automatycznie podwyższa częstotliwość odświeżania z 60 na %1$d Hz. Zwiększa zużycie baterii.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dotknij, by uśpić</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dotknij dwukrotnie na pasku statusu lub ekranie blokady, aby wyłączyć ekran</string>
+    <string name="high_touch_polling_rate_title">Wysoka szybkość próbkowania dotykowego</string>
+    <string name="high_touch_polling_rate_summary">Zwiększ szybkość próbkowania ekranu dotykowego</string>
+    <string name="heads_up_notifications_enabled_title">Wyskakujące powiadomienia</string>
+    <string name="heads_up_notifications_enabled_summary">Wyświetlaj ważne powiadomienia w małym oknie pływającym</string>
+    <string name="high_touch_sensitivity_title">Wysoka czułość dotyku</string>
+    <string name="high_touch_sensitivity_summary">Zwiększa czułość ekranu dotykowego, więc możesz go używać podczas noszenia rękawiczek</string>
+    <string name="tethering_allow_vpn_upstreams_title">Zezwól podłączonym urządzeniom na korzystanie z VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Zezwól urządzeniom, podłączonym do udostępnionej sieci, na wysyłanie pakietów, poprzez VPN tego urządzenia</string>
+    <string name="increasing_ring_volume_option_title">Narastająca głośność dzwonka</string>
+    <string name="increasing_ring_min_volume_title">Głośność początkowa</string>
+    <string name="increasing_ring_ramp_up_time_title">Wydłużenie odstępu</string>
+    <string name="lockscreen_media_art_title">Wyświetlanie okładki albumu</string>
+    <string name="lock_settings_picker_pattern_size_message">Wybierz rozmiar wzoru</string>
+    <string name="lockpattern_settings_enable_error_path_title">Pokazuj błędny wzór</string>
+    <string name="lockpattern_settings_enable_dots_title">Pokazuj punkty wzoru</string>
+    <string name="max_refresh_rate_title">Najwyższa częstotliwość odświeżania</string>
+    <string name="min_refresh_rate_title">Minimalna częstotliwość odświeżania</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Zlokalizuj czytnik linii papilarnych na przedniej stronie tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Zlokalizuj czytnik linii papilarnych na przedniej stronie urządzenia.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Zlokalizuj czytnik linii papilarnych na przedniej stronie telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Zlokalizuj czytnik linii papilarnych na tylnej stronie tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Zlokalizuj czytnik linii papilarnych na tylnej stronie urządzenia.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Zlokalizuj czytnik linii papilarnych na tylnej stronie telefonu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Zlokalizuj czytnik linii papilarnych znajdujący się z boku tabletu.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Zlokalizuj czytnik linii papilarnych znajdujący się z boku urządzenia.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Zlokalizuj czytnik linii papilarnych znajdujący się z boku telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotknij czujnika znajdującego się z przodu twojego tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotknij czujnika znajdującego się z przodu twojego urządzenia.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotknij czujnika znajdującego się z przodu twojego telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotknij czujnika znajdującego się z tyłu twojego tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotknij czujnika znajdującego się z tyłu twojego urządzenia.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotknij czujnika znajdującego się z tyłu twojego telefonu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotknij czujnika znajdującego się z boku twojego tabletu.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotknij czujnika znajdującego się z boku twojego urządzenia.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotknij czujnika znajdującego się z boku twojego telefonu.</string>
+    <string name="show_navbar_hint_title">Pasek nawigacji</string>
+    <string name="show_navbar_hint_summary">Pokaż pasek nawigacji w dolnej części ekranu</string>
+    <string name="app_notification_sound_timeout_title">Minimalny czas między dźwiękami powiadomień</string>
+    <string name="app_notification_sound_timeout_summary_template">Zezwól na dźwięki i wibracje, nie więcej niż jeden raz co każde <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Brak ograniczeń</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekund</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekund</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 min</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 min</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 min</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minut</string>
+    <string name="auto_brightness_one_shot_title">Jednorazowa jasność automatyczna</string>
+    <string name="auto_brightness_one_shot_summary">Regulacja jasności nastąpi tylko w momencie włączenia ekranu</string>
+    <string name="data_usage_app_restrict_all">Zezwól na dostęp do sieci</string>
+    <string name="data_usage_app_restrict_all_summary">Włącz użycie sieci</string>
+    <string name="data_usage_app_restrict_mobile">Dane komórkowe</string>
+    <string name="data_usage_app_restrict_mobile_summary">Włącz użycie danych komórkowych</string>
+    <string name="data_usage_app_restrict_vpn">Dane VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Włącz użycie danych VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dane Wi-Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Włącz użycie danych Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Pomieszany układ</string>
+    <string name="unlock_scramble_pin_layout_summary">Pomieszany układ cyfr przy odblokowywaniu urządzenia kodem PIN</string>
+    <string name="proximity_wake_title">Zapobiega przypadkowemu wybudzeniu</string>
+    <string name="proximity_wake_summary">Sprawdź czujnik zbliżeniowy przed wybudzeniem ekranu</string>
+    <string name="touchscreen_gesture_settings_title">Gesty ekranu dotykowego</string>
+    <string name="touchscreen_gesture_settings_summary">Wykonuj różne gesty na ekranie dotykowym, aby wykonać szybkie akcje</string>
+    <string name="touchscreen_hovering_title">Wskazywanie ekranu dotykowego</string>
+    <string name="touchscreen_hovering_summary">Pozwala na wskazywanie na ekranie jak myszką w przeglądarce internetowej, pulpicie zdalnym itd.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Wybudź przy podłączaniu</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Włącz ekran podczas podłączania i odłączania od źródła zasilania</string>
+    <string name="fast_charging_title">Szybkie ładowanie</string>
+    <string name="fast_charging_summary">Wyłącz, aby zmniejszyć ciepło wytwarzane przez urządzenie podczas ładowania lub wydłużyć żywotność baterii</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Odblokuj telefon dłużej dotykając czytnika linii papilarnych</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Odblokuj tablet dłużej dotykając czytnika linii papilarnych</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Odblokuj urządzenie dłużej dotykając czytnika linii papilar.</string>
+    <string name="ambient_display_screen_off_udfps_summary">Aby wybudzić i odblokować ekran, dotknij dłużej czytnika linii papilarnych, znajdującego się pod wyświetlaczem.</string>
+    <string name="storage_warning_internal">Ostrzeżenie: Ta opcja może nie działać poprawnie lub prowadzić do utraty danych i dlatego nie jest zalecana!</string>
+</resources>
diff --git a/res/values-pt-rBR/cm_strings.xml b/res/values-pt-rBR/cm_strings.xml
new file mode 100644
index 0000000..3845e38
--- /dev/null
+++ b/res/values-pt-rBR/cm_strings.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Configurações avançadas</string>
+    <string name="adb_enable_root">Depuração como superusuário</string>
+    <string name="adb_enable_summary_root">Permitir a depuração do Android como superusuário</string>
+    <string name="backup_transport_setting_label">Alterar provedor de backup</string>
+    <string name="backup_transport_title">Selecione o provedor de backup</string>
+    <string name="berry_black_theme_title">Preto puro</string>
+    <string name="berry_black_theme_summary">Preto puro como cor de fundo para tema escuro</string>
+    <string name="lineagelicense_title">Licença LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Você agora está a <xliff:g id="step_count">%1$d </xliff:g> passo de ativar as configurações de desenvolvimento.</item>
+        <item quantity="other">Você agora está a <xliff:g id="step_count">%1$d </xliff:g> passos de ativar as configurações de desenvolvimento.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Você ativou as configurações de desenvolvedor!</string>
+    <string name="show_dev_already_cm">Não é preciso, você já ativou as configurações de desenvolvedor.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente a taxa de atualização de 60 para %1$d Hz para alguns conteúdos. Maior uso da bateria</string>
+    <string name="status_bar_double_tap_to_sleep_title">Toque duplo para suspender</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Toque duas vezes na barra de status ou na tela de bloqueio para desligar a tela</string>
+    <string name="heads_up_notifications_enabled_title">Notificações pop-up</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar notificações prioritárias numa pequena janela flutuante</string>
+    <string name="high_touch_sensitivity_title">Toque de alta sensibilidade</string>
+    <string name="high_touch_sensitivity_summary">Aumenta a sensibilidade da tela para poder ser usada com luvas</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir que clientes usem VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir que os clientes de hotspot usem este dispositivo\u2019 para conexões VPN de alta velocidade</string>
+    <string name="increasing_ring_volume_option_title">Aumentando volume do toque</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+    <string name="lockscreen_media_art_title">Exibir capa do álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Escolha um tamanho para o padrão</string>
+    <string name="lockpattern_settings_enable_error_path_title">Exibir erro de padrão</string>
+    <string name="lockpattern_settings_enable_dots_title">Exibir pontos no padrão</string>
+    <string name="min_refresh_rate_title">Taxa de atualização mínima</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localize o sensor de impressão digital na parte frontal do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localize o sensor de impressão digital na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localize o sensor de impressão digital na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localize o sensor de impressão digital na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localize o sensor de impressão digital na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localize o sensor de impressão digital na parte de trás do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localize o sensor de impressão digital na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localize o sensor de impressão digital na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localize o sensor de impressão digital na parte lateral do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toque no sensor na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toque no sensor na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toque no sensor na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toque no sensor na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toque no sensor na parte traseira do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toque no sensor na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toque no sensor na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toque no sensor na lateral do seu telefone.</string>
+    <string name="app_notification_sound_timeout_title">Tempo mínimo entre sons de notificação</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir sons ou vibrações apenas uma vez a cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sem restrição</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_all">Permitir acesso à rede</string>
+    <string name="data_usage_app_restrict_all_summary">Permitir o uso da rede</string>
+    <string name="data_usage_app_restrict_mobile">Dados móveis</string>
+    <string name="data_usage_app_restrict_mobile_summary">Permitir o uso de dados móveis</string>
+    <string name="data_usage_app_restrict_vpn">Dados VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Permitir o uso de dados via VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dados Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Permitir o uso de dados Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Embaralhar layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Embaralhar PIN ao desbloquear o dispositivo</string>
+    <string name="proximity_wake_title">Evitar despertar acidental</string>
+    <string name="proximity_wake_summary">Verificar o sensor de proximidade antes de ligar a tela</string>
+    <string name="touchscreen_gesture_settings_title">Gestos na tela</string>
+    <string name="touchscreen_gesture_settings_summary">Faça vários gestos na tela para ações rápidas</string>
+    <string name="touchscreen_hovering_title">Flutuar o dedo na tela</string>
+    <string name="touchscreen_hovering_summary">Permite que você flutue o dedo na tela como um mouse em navegadores web, desktops remotos, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Acordar ao plugar</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ativar a tela ao ligar ou desligar do carregador</string>
+    <string name="fast_charging_title">Carregamento rápido</string>
+</resources>
diff --git a/res/values-pt-rPT/cm_strings.xml b/res/values-pt-rPT/cm_strings.xml
new file mode 100644
index 0000000..b5189c9
--- /dev/null
+++ b/res/values-pt-rPT/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Definições avançadas</string>
+    <string name="adb_enable_root">Depuração root</string>
+    <string name="adb_enable_summary_root">Permitir a execução da depuração Android como root</string>
+    <string name="backup_transport_setting_label">Alterar provedor de cópia de segurança</string>
+    <string name="backup_transport_title">Selecionar provedor de cópia de segurança</string>
+    <string name="berry_black_theme_title">Preto puro</string>
+    <string name="berry_black_theme_summary">Fundo em preto puro para tema escuro</string>
+    <string name="lineagelicense_title">Licença LineageOS</string>
+    <string name="device_info_protected_single_press">Toque para mostrar informações</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Está agora a <xliff:g id="step_count">%1$d</xliff:g> passo de ativar as opções de programador.</item>
+        <item quantity="other">Está agora a <xliff:g id="step_count">%1$d</xliff:g> passos de ativar as opções de programador.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ativou as opções de programador!</string>
+    <string name="show_dev_already_cm">Não é necessário, já ativou as opções de programador.</string>
+    <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente a taxa de atualização de 60 para %1$d Hz em certos conteúdos. Aumenta a utilização da bateria.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Toque duplo para desligar o ecrã</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dê um toque duplo na barra de estado ou ecrã de bloqueio para desligar o ecrã</string>
+    <string name="high_touch_polling_rate_title">Alta taxa de amostragem de toque</string>
+    <string name="high_touch_polling_rate_summary">Aumentar a taxa de amostragem de toque do ecrã</string>
+    <string name="heads_up_notifications_enabled_title">Notificações flutuantes</string>
+    <string name="heads_up_notifications_enabled_summary">Mostrar notificações prioritárias numa pequena janela flutuante</string>
+    <string name="high_touch_sensitivity_title">Alta sensibilidade</string>
+    <string name="high_touch_sensitivity_summary">Aumentar a sensibilidade do ecrã para ser manuseado quando estiver a usar luvas</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permitir que os clientes usem VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permitir que os clientes de hotspot usem as ligações VPN deste dispositivo</string>
+    <string name="increasing_ring_volume_option_title">Toque crescente</string>
+    <string name="increasing_ring_min_volume_title">Volume inicial</string>
+    <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+    <string name="lockscreen_media_art_title">Mostrar capa do álbum</string>
+    <string name="lock_settings_picker_pattern_size_message">Escolha um tamanho para o padrão</string>
+    <string name="lockpattern_settings_enable_error_path_title">Mostrar erro no padrão</string>
+    <string name="lockpattern_settings_enable_dots_title">Mostrar os pontos do padrão</string>
+    <string name="max_refresh_rate_title">Taxa de atualização máxima</string>
+    <string name="min_refresh_rate_title">Taxa mínima de atualização</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localize o sensor de impressões digitais na parte frontal do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localize o sensor de impressões digitais na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localize o sensor de impressões digitais na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localize o sensor de impressões digitais na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localize o sensor de impressões digitais na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localize o sensor de impressões digitais na parte traseira do seu telefone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localize o sensor de impressões digitais na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localize o sensor de impressões digitais na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localize o sensor de impressões digitais na lateral do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toque no sensor na parte frontal do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toque no sensor na parte frontal do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toque no sensor na parte frontal do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toque no sensor na parte traseira do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toque no sensor na parte traseira do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toque no sensor na parte traseira do seu telefone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toque no sensor na lateral do seu tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toque no sensor na lateral do seu dispositivo.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toque no sensor na lateral do seu telefone.</string>
+    <string name="show_navbar_hint_title">Dica de navegação</string>
+    <string name="show_navbar_hint_summary">Mostrar a barra de dicas de navegação na parte inferior do ecrã</string>
+    <string name="app_notification_sound_timeout_title">Tempo mínimo entre sons de notificação</string>
+    <string name="app_notification_sound_timeout_summary_template">Permitir sons ou vibrações, apenas uma vez, a cada <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Sem restrição</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="auto_brightness_one_shot_title">Brilho automático ao ligar o ecrã</string>
+    <string name="auto_brightness_one_shot_summary">O ajuste do brilho ocorrerá apenas no momento em que o ecrã for ligado</string>
+    <string name="data_usage_app_restrict_all">Permitir acesso à rede</string>
+    <string name="data_usage_app_restrict_all_summary">Ativar utilização da rede</string>
+    <string name="data_usage_app_restrict_mobile">Dados móveis</string>
+    <string name="data_usage_app_restrict_mobile_summary">Ativar utilização de dados móveis</string>
+    <string name="data_usage_app_restrict_vpn">Dados VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Ativar a utilização de dados VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dados Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Ativar a utilização de dados Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Disposição aleatória</string>
+    <string name="unlock_scramble_pin_layout_summary">Apresentar aleatoriamente a disposição do teclado numérico, quando desbloquear com PIN</string>
+    <string name="proximity_wake_title">Impedir que o ecrã se ligue acidentalmente</string>
+    <string name="proximity_wake_summary">Verificar o sensor de proximidade antes de ligar o ecrã</string>
+    <string name="touchscreen_gesture_settings_title">Gestos do ecrã</string>
+    <string name="touchscreen_gesture_settings_summary">Executar vários gestos no ecrã para ações rápidas</string>
+    <string name="touchscreen_hovering_title">Flutuar sobre o ecrã</string>
+    <string name="touchscreen_hovering_summary">Permite que flutue o dedo sobre o ecrã como um rato nos navegadores de internet, áreas de trabalho remotas, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Ligar ecrã ao detetar carregador</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ativar o ecrã quando conectar ou desconectar uma fonte de energia</string>
+    <string name="fast_charging_title">Carregamento rápido</string>
+    <string name="fast_charging_summary">Desative para reduzir a temperatura produzida pelo dispositivo enquanto carrega ou para aumentar a duração da bateria</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Mantenha premido o sensor de impressão digital para desbloquear o telemóvel</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Mantenha premido o sensor de impressão digital para desbloquear o tablet</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Mantenha premido o sensor de impressão digital para desbloquear o dispositivo</string>
+    <string name="ambient_display_screen_off_udfps_summary">Para ligar o ecrã e desbloquear, mantenha premido o sensor de impressão digital.</string>
+    <string name="storage_warning_internal">Aviso: Esta opção pode não funcionar corretamente ou levar à perda de dados, não sendo, portanto, recomendada!</string>
+</resources>
diff --git a/res/values-ro/cm_strings.xml b/res/values-ro/cm_strings.xml
new file mode 100644
index 0000000..0b483e2
--- /dev/null
+++ b/res/values-ro/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Mai multe</string>
+    <string name="advanced_keyboard_settings_title">Setări avansate</string>
+    <string name="adb_enable_root">Depanare ca root</string>
+    <string name="adb_enable_summary_root">Permite depanării sistemului Android să ruleze în modul root</string>
+    <string name="backup_transport_setting_label">Schimbă furnizorul de backup</string>
+    <string name="backup_transport_title">Selectați furnizorul de backup</string>
+    <string name="berry_black_theme_title">Negru pur</string>
+    <string name="berry_black_theme_summary">Fundal negru pur pentru tema întunecată</string>
+    <string name="lineagelicense_title">Juridic LineageOS</string>
+    <string name="device_info_protected_single_press">Atingeți pentru a afișa informații</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ești la <xliff:g id="step_count">%1$d</xliff:g> pas distanță de a activa opțiunile de dezvoltator.</item>
+        <item quantity="few">Ești la <xliff:g id="step_count">%1$d</xliff:g> pași distanță de a activa opțiunile de dezvoltator.</item>
+        <item quantity="other">Ești la <xliff:g id="step_count">%1$d</xliff:g> pași distanță de a activa opțiunile de dezvoltator.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ați deblocat setările de dezvoltator!</string>
+    <string name="show_dev_already_cm">Nu este nevoie, deja ai deblocat setările de dezvoltator.</string>
+    <string name="peak_refresh_rate_summary_custom">Crește automat rata de împrospătare de la 60 la %1$d Hz pentru anumite conținuturi. Crește consumul bateriei.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Atingeți pentru sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Atingeți de două ori bara de stare sau ecranul de blocare pentru a opri ecranul</string>
+    <string name="high_touch_polling_rate_title">Rată mare pentru touch polling</string>
+    <string name="high_touch_polling_rate_summary">Crește rata de polling a ecranului tactil</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Afișează notificările prioritare într-o fereastră micuță plutitoare</string>
+    <string name="high_touch_sensitivity_title">Sensibilitate tactilă înaltă </string>
+    <string name="high_touch_sensitivity_summary">Crește sensibilitatea ecranului tactil, astfel încât acesta poate fi utilizat în timp ce se poartă mănuși</string>
+    <string name="tethering_allow_vpn_upstreams_title">Permite clienților să utilizeze VPN-uri</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permite clienților hotspot-ului să utilizeze conexiunile VPN ale acestui dispozitiv pentru conexiunea upstream</string>
+    <string name="increasing_ring_volume_option_title">Volum crescător</string>
+    <string name="increasing_ring_min_volume_title">Volum inițial</string>
+    <string name="increasing_ring_ramp_up_time_title">Timp de creştere a volumului</string>
+    <string name="lockscreen_media_art_title">Afișează coperta artistică a piesei</string>
+    <string name="lock_settings_picker_pattern_size_message">Alegeți dimensiunea modelului</string>
+    <string name="lockpattern_settings_enable_error_path_title">Afișare eroare model</string>
+    <string name="lockpattern_settings_enable_dots_title">Afișare puncte model</string>
+    <string name="max_refresh_rate_title">Rata maximă de împrospătare</string>
+    <string name="min_refresh_rate_title">Rata minimă de împrospătare</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Găsiți senzorul de amprentă pe partea din faţă a tabletei.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Găsiți senzorul de amprentă pe partea din faţă a dispozitivului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Găsiți senzorul de amprentă pe partea din faţă a telefonului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Găsiți senzorul de amprentă pe partea din spate a tabletei.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Găsiți senzorul de amprentă pe partea din spate a dispozitivului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Găsiți senzorul de amprentă pe partea din spate a telefonului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Găsiți senzorul de amprentă pe partea laterală a tabletei.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Găsiți senzorul de amprentă pe partea laterală a dispozitivului.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Găsiți senzorul de amprentă pe partea laterală a telefonului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Atingeţi senzorul de pe partea din faţă a tabletei.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Atingeți senzorul de pe partea din față a dispozitivului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Atingeți senzorul de pe partea din față a telefonului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Atingeţi senzorul de pe partea din spate a tabletei.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Atingeţi senzorul de pe partea din spate a dispozitivului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Atingeți senzorul de pe partea din spate a telefonului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Atingeţi senzorul de pe partea laterală a tabletei.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Atingeţi senzorul de pe partea laterală a dispozitivului.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Atingeţi senzorul de pe partea laterală a telefonului.</string>
+    <string name="show_navbar_hint_title">Indicii navigare</string>
+    <string name="show_navbar_hint_summary">Arată indiciul bării de navigare în partea de jos a ecranului</string>
+    <string name="app_notification_sound_timeout_title">Timp minim între sunetele notificărilor</string>
+    <string name="app_notification_sound_timeout_summary_template">Nu permiteți sunete sau vibrații mai mult de o singură dată la mai puțin de fiecare <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Fără restricţie</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 secunde</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 de secunde</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minute</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minute</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 de minute</string>
+    <string name="auto_brightness_one_shot_title">Luminozitate automată instantă</string>
+    <string name="auto_brightness_one_shot_summary">Ajustarea luminozității va avea loc doar în momentul în care ecranul este pornit</string>
+    <string name="data_usage_app_restrict_all">Permiteți accesul la rețea</string>
+    <string name="data_usage_app_restrict_all_summary">Activați utilizare rețea</string>
+    <string name="data_usage_app_restrict_mobile">Date mobile</string>
+    <string name="data_usage_app_restrict_mobile_summary">Permite utilizarea datelor mobile</string>
+    <string name="data_usage_app_restrict_vpn">Date VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Activează utilizarea datelor VPN</string>
+    <string name="data_usage_app_restrict_wifi">Date Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Permite utilizarea datelor Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Amestecă așezarea în pagină</string>
+    <string name="unlock_scramble_pin_layout_summary">Amestecă așezarea în pagină a ecranului de PIN atunci când se deblochează aparatul</string>
+    <string name="proximity_wake_title">Previne trezirea accidentală</string>
+    <string name="proximity_wake_summary">Verificaţi senzorul de proximitate înainte de a trezi ecranul</string>
+    <string name="touchscreen_gesture_settings_title">Gesturi touchscreen</string>
+    <string name="touchscreen_gesture_settings_summary">Efectuați diverse gesturi pe touchscreen pentru acţiuni rapide</string>
+    <string name="touchscreen_hovering_title">Plutire peste ecran</string>
+    <string name="touchscreen_hovering_summary">Vă permite să plutiți degetul peste ecran ca un mouse în browserele web, remote desktop-uri, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Trezire la alimentare</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Aprinde ecranul când se conectează sau deconectează sursa de alimentare</string>
+    <string name="fast_charging_title">Încărcare rapidă</string>
+    <string name="fast_charging_summary">Dezactivați pentru a reduce căldura produsă de dispozitiv în timpul încărcării sau pentru a prelungi durata de viață a bateriei</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Apăsați lung pe senzorul de amprentă pentru a debloca telefonul</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Apăsați lung pe senzorul de amprentă pentru a debloca tableta</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Apăsați lung pe senzorul de amprentă pentru a debloca dispozitivul</string>
+    <string name="ambient_display_screen_off_udfps_summary">Pentru a porni și debloca ecranul, țineți apăsat pe senzorul de amprentă under-display.</string>
+    <string name="storage_warning_internal">Atenție: Este posibil ca această opțiune să nu funcționeze corespunzător sau să ducă la pierderea datelor și, prin urmare, nu este recomandată!</string>
+</resources>
diff --git a/res/values-ru/cm_strings.xml b/res/values-ru/cm_strings.xml
new file mode 100644
index 0000000..7936e16
--- /dev/null
+++ b/res/values-ru/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Дополнительно</string>
+    <string name="advanced_keyboard_settings_title">Расширенные настройки</string>
+    <string name="adb_enable_root">Отладка суперпользователем</string>
+    <string name="adb_enable_summary_root">Разрешить запуск отладки Android с правами суперпользователя</string>
+    <string name="backup_transport_setting_label">Сменить поставщика резервного копирования</string>
+    <string name="backup_transport_title">Выберите поставщика резервного копирования</string>
+    <string name="berry_black_theme_title">Натурально черный</string>
+    <string name="berry_black_theme_summary">Натурально черный фон для темной темы</string>
+    <string name="lineagelicense_title">Политика конфиденциальности LineageOS</string>
+    <string name="device_info_protected_single_press">Нажмите, чтобы показать информацию</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+        <item quantity="few">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раза, чтобы включить настройки для разработчиков.</item>
+        <item quantity="many">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+        <item quantity="other">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Настройки для разработчиков включены!</string>
+    <string name="show_dev_already_cm">Нет необходимости, вы уже включили параметры разработки.</string>
+    <string name="peak_refresh_rate_summary_custom">Автоматически увеличивать частоту обновления экрана с 60 до %1$d Гц для некоторых типов контента. Увеличивает расход заряда батареи.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Коснитесь для сна</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Дважды коснитесь строки состояния или экрана блокировки, чтобы перевести устройство в спящий режим</string>
+    <string name="high_touch_polling_rate_title">Высокая частота опроса прикосновений</string>
+    <string name="high_touch_polling_rate_summary">Увеличить скорость опроса сенсорного экрана</string>
+    <string name="heads_up_notifications_enabled_title">Всплывающие уведомления</string>
+    <string name="heads_up_notifications_enabled_summary">Показывать приоритетные уведомления небольшими всплывающими окнами</string>
+    <string name="high_touch_sensitivity_title">Режим перчаток</string>
+    <string name="high_touch_sensitivity_summary">Увеличить чувствительность экрана для возможности работы в перчатках</string>
+    <string name="tethering_allow_vpn_upstreams_title">Разрешить клиентам использовать VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Разрешить клиентам точки доступа при подключении использовать VPN-соединения этого устройства</string>
+    <string name="increasing_ring_volume_option_title">Возрастающая громкость звонка</string>
+    <string name="increasing_ring_min_volume_title">Начальная громкость</string>
+    <string name="increasing_ring_ramp_up_time_title">Время увеличения</string>
+    <string name="lockscreen_media_art_title">Отображать обложку мультимедиа</string>
+    <string name="lock_settings_picker_pattern_size_message">Выберите размер граф. ключа</string>
+    <string name="lockpattern_settings_enable_error_path_title">Показывать неверный ввод</string>
+    <string name="lockpattern_settings_enable_dots_title">Показывать точки</string>
+    <string name="max_refresh_rate_title">Максимальная частота обновления</string>
+    <string name="min_refresh_rate_title">Минимальная частота обновления</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Найдите сканер отпечатков пальцев на вашем планшете.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Найдите сканер отпечатков пальцев на вашем устройстве.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Найдите сканер отпечатков пальцев на вашем телефоне.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Найдите сканер отпечатков пальцев на вашем планшете.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Найдите сканер отпечатков пальцев на вашем устройстве.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Найдите сканер отпечатков пальцев на вашем телефоне.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Найдите сканер отпечатков пальцев на вашем планшете.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Найдите сканер отпечатков пальцев на вашем устройстве.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Найдите сканер отпечатков пальцев на вашем телефоне.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Коснитесь сенсора на вашем планшете.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Коснитесь сенсора на вашем устройстве.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Коснитесь сенсора на вашем телефоне.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Коснитесь сенсора на вашем планшете.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Коснитесь сенсора на вашем устройстве.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Коснитесь сенсора на вашем телефоне.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Коснитесь сенсора на вашем планшете.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Коснитесь сенсора на вашем устройстве.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Коснитесь сенсора на вашем телефоне.</string>
+    <string name="show_navbar_hint_title">Подсказки по навигации</string>
+    <string name="show_navbar_hint_summary">Показать подсказку по навигации в нижней части экрана</string>
+    <string name="app_notification_sound_timeout_title">Частота звуковых уведомлений</string>
+    <string name="app_notification_sound_timeout_summary_template">Звуки и вибрация не чаще, чем раз в <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Без ограничений</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунд</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 минуту</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 минут</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 минут</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 минут</string>
+    <string name="auto_brightness_one_shot_title">Однократная автоматическая яркость</string>
+    <string name="auto_brightness_one_shot_summary">Регулировка яркости будет происходить только в момент включения экрана</string>
+    <string name="data_usage_app_restrict_all">Разрешить доступ к сети</string>
+    <string name="data_usage_app_restrict_all_summary">Отслеживание использование сети</string>
+    <string name="data_usage_app_restrict_mobile">Мобильные данные</string>
+    <string name="data_usage_app_restrict_mobile_summary">Включить использование мобильных данных</string>
+    <string name="data_usage_app_restrict_vpn">Данные VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Включить использование данных VPN</string>
+    <string name="data_usage_app_restrict_wifi">Данные Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Включить использование данных Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Перемешивать кнопки</string>
+    <string name="unlock_scramble_pin_layout_summary">Переставлять кнопки ввода PIN-кода в случайном порядке</string>
+    <string name="proximity_wake_title">Предотвращать случайное включение</string>
+    <string name="proximity_wake_summary">Проверка датчика приближения перед включением экрана</string>
+    <string name="touchscreen_gesture_settings_title">Жесты сенсорного экрана</string>
+    <string name="touchscreen_gesture_settings_summary">Настройка жестов сенсорного экрана для выполнения действий</string>
+    <string name="touchscreen_hovering_title">Наведение пальца</string>
+    <string name="touchscreen_hovering_summary">Распознавать приближение пальца к экрану для событий наведения курсора в браузере или других приложениях</string>
+    <string name="wake_when_plugged_or_unplugged_title">Включение при зарядке</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Включать экран при подключении или отключении источника питания</string>
+    <string name="fast_charging_title">Быстрая зарядка</string>
+    <string name="fast_charging_summary">Отключите, чтобы уменьшить нагрев устройства во время зарядки или продлить срок службы аккумулятора</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Длительное нажатие на датчик отпечатка пальца для разблокировки телефона</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Длительное нажатие на датчик отпечатка пальца для разблокировки планшета</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Длительное нажатие на датчик отпечатка пальца для разблокировки устройства</string>
+    <string name="ambient_display_screen_off_udfps_summary">Для пробуждения экрана и разблокировки удерживайте датчик отпечатков пальцев под дисплеем.</string>
+    <string name="storage_warning_internal">Предупреждение: эта опция может работать неправильно или привести к потере данных, поэтому не рекомендуется!</string>
+</resources>
diff --git a/res/values-sc-rIT/cm_strings.xml b/res/values-sc-rIT/cm_strings.xml
new file mode 100644
index 0000000..73eee78
--- /dev/null
+++ b/res/values-sc-rIT/cm_strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutu</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Abìlita s\'impreu de sos datos Wi\u2011Fi</string>
+</resources>
diff --git a/res/values-si/cm_strings.xml b/res/values-si/cm_strings.xml
new file mode 100644
index 0000000..c174e94
--- /dev/null
+++ b/res/values-si/cm_strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS නීතිමය තොරතුරු</string>
+    <string name="peak_refresh_rate_summary_custom">සමහර අන්තර්ගත සඳහා නැවුම් කිරීමේ අනුපාතය හර්ට්ස් 60 සිට %1$d දක්වා ස්වයංක්‍රියව ඉහළ නංවයි. බැටරි භාවිතය වැඩි කරයි.</string>
+    <string name="high_touch_sensitivity_title">ඉහළ ස්පර්ශ සංවේදිතාව</string>
+    <string name="high_touch_sensitivity_summary">ස්පර්ශ තීරයේ සංවේදීතාව වැඩිකරන්න, එබැවින් අත්මේස් පළඳා ඇතිවිට එය භාවිතාකලහැකිය</string>
+    <string name="unlock_scramble_pin_layout_title">සැලැස්ම පටලවන්න</string>
+    <string name="unlock_scramble_pin_layout_summary">උපාංගය අගුළු අරින විට PIN සැලැස්ම පටලවන්න</string>
+    <string name="proximity_wake_title">අහඹු අවදි වීම් වළක්වන්න</string>
+    <string name="wake_when_plugged_or_unplugged_title">පේණුගත කලවිට ඇහැරවන්න</string>
+    <string name="wake_when_plugged_or_unplugged_summary">බල මූලාශ්‍රය සම්බන්ධ කිරීමේදී හෝ විසන්ධි කිරීමේදී තිරය ඇහැරවන්න</string>
+</resources>
diff --git a/res/values-sk/cm_strings.xml b/res/values-sk/cm_strings.xml
new file mode 100644
index 0000000..c09a5eb
--- /dev/null
+++ b/res/values-sk/cm_strings.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Doplnky</string>
+    <string name="advanced_keyboard_settings_title">Rozšírené nastavenia</string>
+    <string name="adb_enable_root">Ladenie s\u00a0právami root</string>
+    <string name="adb_enable_summary_root">Povoliť spustenie ladenia Androidu s\u00a0právami root</string>
+    <string name="backup_transport_setting_label">Zmeniť poskytovateľa zálohovania</string>
+    <string name="backup_transport_title">Vybrať poskytovateľa zálohovania</string>
+    <string name="berry_black_theme_title">Čistá čierna</string>
+    <string name="berry_black_theme_summary">Čisto čierne pozadie pre tmavú tému vzhľadu</string>
+    <string name="lineagelicense_title">Právne informácie LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krok od povolenia možnosti pre vývojárov.</item>
+        <item quantity="few">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> kroky od povolenia možnosti pre vývojárov.</item>
+        <item quantity="many">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krokov od povolenia možnosti pre vývojárov.</item>
+        <item quantity="other">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krokov od povolenia možnosti pre vývojárov.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Povolili ste možnosti pre vývojárov!</string>
+    <string name="show_dev_already_cm">Netreba, už ste povolili možnosti pre vývojárov.</string>
+    <string name="peak_refresh_rate_summary_custom">Automaticky zvyšuje frekvenciu obnovenia zo 60 na %1$d Hz pre určitý obsah. Zvýši sa spotreba batérie.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Kliknutím uspať</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Vypnúť obrazovku dvojklikom na stavový riadok alebo na obrazovku uzamknutia</string>
+    <string name="heads_up_notifications_enabled_title">Plávajúce upozornenia</string>
+    <string name="heads_up_notifications_enabled_summary">Zobraziť prioritné upozornenia v malom plávajúcom okne</string>
+    <string name="high_touch_sensitivity_title">Vysoká citlivosť na dotyky</string>
+    <string name="high_touch_sensitivity_summary">Zvýšiť citlivosť dotykovej obrazovky, takže ju bude možné používať pri nosení rukavíc</string>
+    <string name="tethering_allow_vpn_upstreams_title">Povoliť klientom používanie sietí VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Povoliť hotspot klientom pripojenie cez VPN</string>
+    <string name="increasing_ring_volume_option_title">Zvyšovanie hlasitosti zvonenia</string>
+    <string name="increasing_ring_min_volume_title">Počiatočná hlasitosť</string>
+    <string name="increasing_ring_ramp_up_time_title">Doba zvyšovania</string>
+    <string name="lockscreen_media_art_title">Zobraziť obal médií</string>
+    <string name="lock_settings_picker_pattern_size_message">Zvoliť veľkosť vzoru</string>
+    <string name="lockpattern_settings_enable_error_path_title">Zobraziť chybu vzoru</string>
+    <string name="lockpattern_settings_enable_dots_title">Zobraziť body vzoru</string>
+    <string name="min_refresh_rate_title">Minimálna obnovovacia frekvencia</string>
+    <string name="show_navbar_hint_title">Navigačná nápoveda</string>
+    <string name="show_navbar_hint_summary">Zobraziť panel nápovedy k navigácii naspodu obrazovky</string>
+    <string name="app_notification_sound_timeout_title">Minimálny čas medzi zvukmi upozornenia</string>
+    <string name="app_notification_sound_timeout_summary_template">Povoliť zvuky alebo vibrácie nie viac ako raz za <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Bez obmedzení</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekúnd</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekúnd</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minúta</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minút</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minút</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minút</string>
+    <string name="data_usage_app_restrict_all">Povoliť prístup k sieti</string>
+    <string name="data_usage_app_restrict_all_summary">Povoliť použitie siete</string>
+    <string name="data_usage_app_restrict_mobile">Mobilné dáta</string>
+    <string name="data_usage_app_restrict_mobile_summary">Povoliť používanie mobilných dát</string>
+    <string name="data_usage_app_restrict_vpn">Dáta VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Povoliť používanie dát VPN</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi dáta</string>
+    <string name="data_usage_app_restrict_wifi_summary">Povoliť používanie Wi\u2011Fi dát</string>
+    <string name="unlock_scramble_pin_layout_title">Dynamické rozloženie</string>
+    <string name="unlock_scramble_pin_layout_summary">Prehádzať rozloženie pre zadanie kódu PIN pri odomykaní zariadenia</string>
+    <string name="proximity_wake_title">Zabrániť nechcenému prebudeniu</string>
+    <string name="proximity_wake_summary">Pred prebudením obrazovky skontrolovať senzor priblíženia</string>
+    <string name="touchscreen_gesture_settings_title">Gestá na obrazovke</string>
+    <string name="touchscreen_gesture_settings_summary">Možnosť spustiť rýchlu akciu pomocou rôzných gest na obrazovce</string>
+    <string name="touchscreen_hovering_title">Pohyb nad dotykovou obrazovkou</string>
+    <string name="touchscreen_hovering_summary">Pohybovať sa nad obrazovkou podobne ako myš vo webovom prehliadači, vzdielaneých plochý, atď</string>
+    <string name="wake_when_plugged_or_unplugged_title">Prebudiť po pripojení</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Zapnúť obrazovku pri pripojení alebo odpojení zdroja nabíjania</string>
+    <string name="fast_charging_title">Rýchle nabíjanie</string>
+    <string name="fast_charging_summary">Vypnutím znížite teplo produkované zariadením počas nabíjania alebo predĺžite životnosť batérie</string>
+</resources>
diff --git a/res/values-sl/cm_strings.xml b/res/values-sl/cm_strings.xml
new file mode 100644
index 0000000..ae8b27d
--- /dev/null
+++ b/res/values-sl/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Dodatki</string>
+    <string name="advanced_keyboard_settings_title">Napredne nastavitve</string>
+    <string name="adb_enable_root">Skrbniško razhroščevanje</string>
+    <string name="adb_enable_summary_root">Dovoli izvajanje Android razhroščevanja kot skrbnik</string>
+    <string name="backup_transport_setting_label">Spremeni ponudnika varnostnih kopij</string>
+    <string name="backup_transport_title">Izberite ponudnika varnostnih kopij</string>
+    <string name="berry_black_theme_title">Popolnoma črna</string>
+    <string name="berry_black_theme_summary">Popolnoma črno ozadje za temno temo</string>
+    <string name="lineagelicense_title">Pravna obvestila LineageOS</string>
+    <string name="device_info_protected_single_press">Tapnite za prikaz informacij</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korak pred omogočenjem nastavitev za razvijalce.</item>
+        <item quantity="two">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> koraka pred omogočenjem nastavitev za razvijalce.</item>
+        <item quantity="few">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korake pred omogočenjem nastavitev za razvijalce.</item>
+        <item quantity="other">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korakov pred omogočenjem nastavitev za razvijalce.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Omogočili ste nastavitve za razvijalce!</string>
+    <string name="show_dev_already_cm">Ni treba, ste že omogočili nastavitve za razvijalce.</string>
+    <string name="peak_refresh_rate_summary_custom">Samodejno poveča hitrost osveževanja s 60 na %1$d Hz za nekatere vsebine. Poveča porabo baterije.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Tap za spanje</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Dvakrat tapnite na vrstico stanja ali zaklenjen zaslon, da izklopite zaslon</string>
+    <string name="high_touch_polling_rate_title">Visoka hitrost zaznavanja dotika</string>
+    <string name="high_touch_polling_rate_summary">Povečaj hitrost zaznavanja zaslona na dotik</string>
+    <string name="heads_up_notifications_enabled_title">Obvestila na zaslonu</string>
+    <string name="heads_up_notifications_enabled_summary">Prikaži prednostna obvestila v majhnem lebdečem oknu</string>
+    <string name="high_touch_sensitivity_title">Visoka občutljivost dotika</string>
+    <string name="high_touch_sensitivity_summary">Povečaj občutljivost dotika, tako da ga lahko uporabite, ko nosite rokavice</string>
+    <string name="tethering_allow_vpn_upstreams_title">Dovoli odjemalcem uporabo VPN-jev</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Dovoli odjemalcem dostopne točke uporabo VPN povezav te naprave za povezovanje</string>
+    <string name="increasing_ring_volume_option_title">Naraščajoča glasnost zvonjenja</string>
+    <string name="increasing_ring_min_volume_title">Začetna glasnost</string>
+    <string name="increasing_ring_ramp_up_time_title">Čas povečanja</string>
+    <string name="lockscreen_media_art_title">Prikaži naslovnico večpredstavnosti</string>
+    <string name="lock_settings_picker_pattern_size_message">Izberite velikost vzorca</string>
+    <string name="lockpattern_settings_enable_error_path_title">Prikaži napako vzorca</string>
+    <string name="lockpattern_settings_enable_dots_title">Prikaži pike vzorca</string>
+    <string name="max_refresh_rate_title">Najvišja hitrost osveževanja</string>
+    <string name="min_refresh_rate_title">Najmanjša hitrost osveževanja</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Poiščite tipalo za prstne odtise na sprednji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Poiščite tipalo za prstne odtise na sprednji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Poiščite tipalo za prstne odtise na sprednji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Poiščite tipalo za prstne odtise na zadnji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Poiščite tipalo za prstne odtise na zadnji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Poiščite tipalo za prstne odtise na zadnji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Poiščite tipalo za prstne odtise ob strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Poiščite tipalo za prstne odtise ob strani vaše naprave.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Poiščite tipalo za prstne odtise ob strani vašega telefona.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotaknite se tipala na sprednji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotaknite se tipala na sprednji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotaknite se tipala na sprednji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotaknite se tipala na zadnji strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotaknite se tipala na zadnji strani vaše naprave.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotaknite se tipala na zadnji strani vašega telefona.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotaknite se tipala ob strani vašega tabličnega računalnika.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotaknite se tipala ob strani vaše naprave.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotaknite se tipala ob strani vašega telefona.</string>
+    <string name="show_navbar_hint_title">Namig krmarjenja</string>
+    <string name="show_navbar_hint_summary">Pokaži namig krmarjenja na dnu zaslona</string>
+    <string name="app_notification_sound_timeout_title">Najmanjši čas med zvoki obvestil</string>
+    <string name="app_notification_sound_timeout_summary_template">Najmanjši čas med zvoki ali vibriranji: <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Brez omejitev</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 s</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 s</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 min.</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 min.</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 min.</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 min.</string>
+    <string name="auto_brightness_one_shot_title">Enkratna samodejna svetlost</string>
+    <string name="auto_brightness_one_shot_summary">Prilagoditev svetlosti se bo zgodila samo v trenutku, ko se zaslon vklopi</string>
+    <string name="data_usage_app_restrict_all">Dovoli dostop do omrežja</string>
+    <string name="data_usage_app_restrict_all_summary">Omogoči uporabo omrežja</string>
+    <string name="data_usage_app_restrict_mobile">Mobilni podatki</string>
+    <string name="data_usage_app_restrict_mobile_summary">Omogoči uporabo mobilnih podatkov</string>
+    <string name="data_usage_app_restrict_vpn">VPN podatki</string>
+    <string name="data_usage_app_restrict_vpn_summary">Omogoči uporabo VPN podatkov</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi podatki</string>
+    <string name="data_usage_app_restrict_wifi_summary">Omogoči uporabo Wi\u2011Fi podatkov</string>
+    <string name="unlock_scramble_pin_layout_title">Premešaj razporeditev</string>
+    <string name="unlock_scramble_pin_layout_summary">Premešaj razporeditev PIN ob odklepanju naprave</string>
+    <string name="proximity_wake_title">Prepreči nenamerno bujenje</string>
+    <string name="proximity_wake_summary">Pred bujenjem zaslona preveri tipalo bližine</string>
+    <string name="touchscreen_gesture_settings_title">Poteze na zaslonu na dotik</string>
+    <string name="touchscreen_gesture_settings_summary">Za hitra dejanja na zaslonu na dotik izvedite različne poteze</string>
+    <string name="touchscreen_hovering_title">Prehod zaslona na dotik</string>
+    <string name="touchscreen_hovering_summary">Dovoli vam prehod nad zaslonom, kot miška v spletnih brskalnikih, oddaljenih namizjih itd.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Zbudi ob priključitvi napajalnika</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Vklopi zaslon ob priključitvi/izključitvi napajanja</string>
+    <string name="fast_charging_title">Hitro polnjenje</string>
+    <string name="fast_charging_summary">Onemogočite za zmanjšanje vročine, povzročene iz naprave med polnjenjem ali za podaljšanje življenjske dobe baterije</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Pridržanje na tipalo za prstne odtise za odklep telefona</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Pridržanje na tipalo za prstne odtise za odklep tabličnega računalnika</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Pridržanje na tipalo za prstne odtise za odklep naprave</string>
+    <string name="ambient_display_screen_off_udfps_summary">Da zbudite vaš zaslon in ga odklenete, pridržite vašo podzaslonsko tipalo za prstne odtise</string>
+    <string name="storage_warning_internal">Opozorilo: Ta možnost morda ne bo delovala pravilno, ali bo vodila do izgube podatkov, zato ni priporočljiva!</string>
+</resources>
diff --git a/res/values-sq/cm_strings.xml b/res/values-sq/cm_strings.xml
new file mode 100644
index 0000000..cad2773
--- /dev/null
+++ b/res/values-sq/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Shtesat</string>
+    <string name="advanced_keyboard_settings_title">Parametra të përparuar</string>
+    <string name="adb_enable_root">korrigjimi rrënjë</string>
+    <string name="adb_enable_summary_root">Lejoni ekzekutimin e korrigjimit e gabimeve të Android si root</string>
+    <string name="backup_transport_setting_label">Ndryshoni ofruesin e rezervës</string>
+    <string name="backup_transport_title">Zgjidhni siguruesin e rezervës</string>
+    <string name="berry_black_theme_title">E zezë e pastër</string>
+    <string name="berry_black_theme_summary">Sfond i zi i pastër për temë të errët</string>
+    <string name="lineagelicense_title">Liçensa e LineageOS</string>
+    <string name="device_info_protected_single_press">Trokit për të shfaqur informacionin</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Ju jeni edhe <xliff:g id="step_count">%1$d</xliff:g> hap larg aktivizimit të parametrave të zhvillimit.</item>
+        <item quantity="other">Ju jeni edhe <xliff:g id="step_count">%1$d</xliff:g> hapa larg aktivizimit të parametrave të zhvillimit.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Ju keni aktivizuar parametrat e zhvillimit!</string>
+    <string name="show_dev_already_cm">Nuk ka më nevojë të shtypni! Parametrat e zhvillimit janë të aktivizuara.</string>
+    <string name="peak_refresh_rate_summary_custom">Rrit automatikisht shpejtësinë e rifreskimit nga 60 në %1$d Hz për disa përmbajtje. Rrit përdorimin e baterisë.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Shtyp për të fjetur</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Shtyp dy herë shiritin e ekranit ose mbyllekranin për të fikur ekranin</string>
+    <string name="high_touch_polling_rate_title">Shkalla e lartë e sondazheve me prekje</string>
+    <string name="high_touch_polling_rate_summary">Rrit normën e sondazheve me ekran me prekje</string>
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Shfaq njoftimet kryesore në një dritare të vogël lundruese</string>
+    <string name="high_touch_sensitivity_title">Ndjesi e lartë e prekjes</string>
+    <string name="high_touch_sensitivity_summary">Rrit ndjeshmërinë e prekjes kështu që mund të përdoret kur keni dorashka</string>
+    <string name="tethering_allow_vpn_upstreams_title">Lejo klientët të përdorin VPN -enet</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Lejo klientët e HotSpot të përdorin lidhjet VPN të kësaj paisje për lidhje në rrjedhën e ngarkimit</string>
+    <string name="increasing_ring_volume_option_title">Volum me rritje graduale</string>
+    <string name="increasing_ring_min_volume_title">Volumi fillestar</string>
+    <string name="increasing_ring_ramp_up_time_title">Kohëzgjatja e rritjes</string>
+    <string name="lockscreen_media_art_title">Shfaq ikonën e albumit</string>
+    <string name="lock_settings_picker_pattern_size_message">Zgjidh madhësinë e modelit</string>
+    <string name="lockpattern_settings_enable_error_path_title">Shfaq gabimet në vizatimin e modelit</string>
+    <string name="lockpattern_settings_enable_dots_title">Shfaq pikat e modelit</string>
+    <string name="max_refresh_rate_title">Kulmi maksimal i rifreskimit</string>
+    <string name="min_refresh_rate_title">Shkalla minimale e rifreskimit</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të tabletit tuaj</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Gjeni sensorin e gjurmës së gishtit në anën e pasme të tabletit tuaj</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Gjeni sensorin e gjurmës së gishtit në anën e pasme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Gjeni sensorin e gjurmës së gishtit në anën e pasme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Gjeni sensorin e gjurmës së gishtit në anën e tabletit tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Gjeni sensorin e gjurmës së gishtit në anën e pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Gjeni sensorin e gjurmës së gishtit në anën e telefonit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Prekni sensorin në pjesën e përparme të tabletit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Prekni sensorin në pjesën e përparme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Prekni sensorin në pjesën e përparme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Prekni sensorin në pjesën e pasme të tabletit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Prekni sensorin në pjesën e pasme të pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Prekni sensorin në anën e pasme të telefonit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Prekni sensorin në anën e tabletit tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Prekni sensorin në anën e pajisjes tuaj.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Prekni sensorin në anë të telefonit tuaj.</string>
+    <string name="show_navbar_hint_title">Udhëzim për navigim</string>
+    <string name="show_navbar_hint_summary">Shfaq shiritin e sugjerimeve të navigimit në fund të ekranit</string>
+    <string name="app_notification_sound_timeout_title">Koha minimale midis zileve të njoftimeve</string>
+    <string name="app_notification_sound_timeout_summary_template">Mos lejo zilet apo dridhjet më shumë se një herë në <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">E pakufizim</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekonda</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekonda</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minutë</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuta</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuta</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuta</string>
+    <string name="auto_brightness_one_shot_title">Ndriçimi automatik me një goditje</string>
+    <string name="auto_brightness_one_shot_summary">Rregullimi i ndriçimit do të ndodhë në momentin kur ekrani ndizet</string>
+    <string name="data_usage_app_restrict_all">Lejo hyrjen në rrjet</string>
+    <string name="data_usage_app_restrict_all_summary">Lejo përdorimin e rrjetit</string>
+    <string name="data_usage_app_restrict_mobile">Të dhënat celulare</string>
+    <string name="data_usage_app_restrict_mobile_summary">Aktivizo përdorimin e të dhënave celulare</string>
+    <string name="data_usage_app_restrict_vpn">Të dhëna VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Lejo përdorimin e internetit nga VPN</string>
+    <string name="data_usage_app_restrict_wifi">Të dhëna Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Hap përdorimin e internetit nga Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Paraqitja e përplasjes</string>
+    <string name="unlock_scramble_pin_layout_summary">Përzieni paraqitjen e kodit PIN kur zhbllokoni pajisjen</string>
+    <string name="proximity_wake_title">Parandalo zgjimin aksidental</string>
+    <string name="proximity_wake_summary">Kontrollo sensorin e afërsisë para se të ndezësh ekranin</string>
+    <string name="touchscreen_gesture_settings_title">Gjestet me prekje në ekran</string>
+    <string name="touchscreen_gesture_settings_summary">Kryej gjeste të ndryshme duke prekur ekranin për veprime të shpejta</string>
+    <string name="touchscreen_hovering_title">Ekrani me prekje qëndron pezull</string>
+    <string name="touchscreen_hovering_summary">Ju lejon të rri pezull në ekran si një mi në shfletuesit e internetit, desktopët e largët, etj</string>
+    <string name="wake_when_plugged_or_unplugged_title">Zgjohoje kur lidh karikuesin</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Ndizni ekranin kur lidhni ose shkëputni karikuesin</string>
+    <string name="fast_charging_title">Karikim i shpejtë</string>
+    <string name="fast_charging_summary">Çaktivizoni për të zvogëluar nxehtësinë e prodhuar nga pajisja gjatë karikimit ose për të zgjatur jetëgjatësinë e baterisë</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Shtypni gjatë sensorin e gjurmës së gishtit për të zhbllokuar telefonin</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Shtypni gjatë sensorin e gjurmës së gishtit për të zhbllokuar tabletin</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Shtypni gjatë sensorin e gjurmës së gishtit për të shkyçur pajisjen</string>
+    <string name="ambient_display_screen_off_udfps_summary">Për të zgjuar ekranin dhe për të shkyçur, shtypni gjatë sensorin e gjurmës së gishtit nën ekran.</string>
+    <string name="storage_warning_internal">Paralajmërim: Ky opsion mund të mos funksionojë siç duhet ose të çojë në humbje të të dhënave dhe për këtë arsye nuk rekomandohet!</string>
+</resources>
diff --git a/res/values-sr/cm_strings.xml b/res/values-sr/cm_strings.xml
new file mode 100644
index 0000000..868de34
--- /dev/null
+++ b/res/values-sr/cm_strings.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Откл. грешака с root приступом</string>
+    <string name="adb_enable_summary_root">Дозволи покретање Android отклањања грешака као root</string>
+    <string name="lineagelicense_title">Политика приватности LineageOS-а</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пут да бисте омогућили опције за програмера.</item>
+        <item quantity="few">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пута да бисте омогућили опције за програмера.</item>
+        <item quantity="other">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пута да бисте омогућили опције за програмера.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Омогућили сте опције за програмера.</string>
+    <string name="show_dev_already_cm">Нема потебе, опције за програмера су већ омогућене.</string>
+    <string name="peak_refresh_rate_summary_custom">Аутоматски подиже учесталост освежавања са 60 на %1$d Hz за одређени садржај. Повећава потрошњу батерије.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Додир за спавање</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Додирните двапут на статусну траку или на закључани екран да бисте искључили екран</string>
+    <string name="heads_up_notifications_enabled_title">Искачућа обавештења</string>
+    <string name="heads_up_notifications_enabled_summary">Приказује приоритетна обавештења у малим искачућим прозорима.</string>
+    <string name="high_touch_sensitivity_title">Велика осетљивост на додир</string>
+    <string name="high_touch_sensitivity_summary">Повећава осетљивост екрана ради коришћења уређаја у рукавицама.</string>
+    <string name="increasing_ring_volume_option_title">Појачавање јачине звука звона</string>
+    <string name="increasing_ring_min_volume_title">Почетна јачина звука</string>
+    <string name="increasing_ring_ramp_up_time_title">Време појачавања</string>
+    <string name="lockscreen_media_art_title">Прикажи омот медија</string>
+    <string name="lock_settings_picker_pattern_size_message">Изаберите величину шаблона</string>
+    <string name="lockpattern_settings_enable_error_path_title">Прикажи неисправан унос</string>
+    <string name="lockpattern_settings_enable_dots_title">Прикажи тачке</string>
+    <string name="app_notification_sound_timeout_title">Учесталост звучних обавештења</string>
+    <string name="app_notification_sound_timeout_summary_template">Звуци и вибрација не чешће од једном сваких <xliff:g id="duration">%1$s</xliff:g>.</string>
+    <string name="app_notification_sound_timeout_value_none">Без ограничења</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунди</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунди</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 минут</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 минута</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 минута</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 минута</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi подаци</string>
+    <string name="data_usage_app_restrict_wifi_summary">Укључи употребу Wi\u2011Fi података</string>
+    <string name="unlock_scramble_pin_layout_title">Насумични распоред</string>
+    <string name="unlock_scramble_pin_layout_summary">Приказује дугмад за унос PIN кода у насумичном реду.</string>
+    <string name="proximity_wake_title">Спречи случајно буђење</string>
+    <string name="proximity_wake_summary">Провери сензор близине пре буђења екрана</string>
+    <string name="touchscreen_gesture_settings_title">Гестови по екрану</string>
+    <string name="touchscreen_gesture_settings_summary">Подеси разне гестове по екрану за брзе акције</string>
+    <string name="touchscreen_hovering_title">Задржавање прста</string>
+    <string name="touchscreen_hovering_summary">Омогућава радње при задржавању прста изнад елемената интерфејса у веб-прегледачима или другим апликацијама.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Буђење при пуњењу</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Укључује екран при повезивању или прекиду везе са извором напајања.</string>
+</resources>
diff --git a/res/values-sv/cm_strings.xml b/res/values-sv/cm_strings.xml
new file mode 100644
index 0000000..59e278c
--- /dev/null
+++ b/res/values-sv/cm_strings.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS Juridik</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Du är nu <xliff:g id="step_count">%1$d</xliff:g> steg från att aktivera utvecklingsinställningar.</item>
+        <item quantity="other">Du är nu <xliff:g id="step_count">%1$d</xliff:g> steg från att aktivera utvecklingsinställningar.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Du har aktiverat utvecklingsinställningar!</string>
+    <string name="show_dev_already_cm">Det behövs inte, du har redan aktiverat utvecklingsinställningar.</string>
+    <string name="peak_refresh_rate_summary_custom">Höjer uppdateringsfrekvensen dynamiskt från 60 till %1$d Hz för visst innehåll. Ökar batteriförbrukningen.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Dubbeltryck för att släcka skärmen</string>
+    <string name="high_touch_sensitivity_title">Hög fingerkänslighet</string>
+    <string name="high_touch_sensitivity_summary">Öka tryckskärmens känslighet så att den kan användas samtidigt som du bär handskar</string>
+    <string name="increasing_ring_volume_option_title">Ökande ljudvolym</string>
+    <string name="increasing_ring_min_volume_title">Startvolym</string>
+    <string name="increasing_ring_ramp_up_time_title">Upprampningstid</string>
+    <string name="lockpattern_settings_enable_error_path_title">Visa mönster vid fel</string>
+    <string name="lockpattern_settings_enable_dots_title">Visa mönsterpunkter</string>
+    <string name="app_notification_sound_timeout_title">Minsta tid mellan aviseringsljud</string>
+    <string name="app_notification_sound_timeout_value_none">Ingen begränsning</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minuter</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minuter</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minuter</string>
+    <string name="unlock_scramble_pin_layout_title">Kasta om layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Kasta om PIN-layout vid upplåsning av enheten</string>
+    <string name="proximity_wake_title">Förhindra oavsiktlig väckning</string>
+    <string name="touchscreen_gesture_settings_title">Skärmgester</string>
+    <string name="touchscreen_hovering_title">Tryckskärm-hovring</string>
+    <string name="touchscreen_hovering_summary">Låter dig hovra över skärmen som en mus i webbläsare, fjärrskrivbord, etc</string>
+    <string name="wake_when_plugged_or_unplugged_title">Vakna vid koppling</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Starta skärmen vid anslutning till eller frånkoppling från strömkälla</string>
+</resources>
diff --git a/res/values-sw/cm_strings.xml b/res/values-sw/cm_strings.xml
new file mode 100644
index 0000000..02fbd02
--- /dev/null
+++ b/res/values-sw/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Huinua kiotomatiki kiwango cha kuonyesha upya kutoka Hz 60 hadi %1$d kwa baadhi ya maudhui. Huongeza matumizi ya betri.</string>
+</resources>
diff --git a/res/values-ta/cm_strings.xml b/res/values-ta/cm_strings.xml
new file mode 100644
index 0000000..e4dcaf0
--- /dev/null
+++ b/res/values-ta/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS சட்டம்</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">வளர்ச்சி அமைப்புகளை செயல்படுத்துவதற்கு <xliff:g id="step_count">%1$d</xliff:g>  படி தொலைவில் நீங்கள் இப்போது உள்ளீர்கள்.</item>
+        <item quantity="other">வளர்ச்சி அமைப்புகளை செயல்படுத்துவதற்கு <xliff:g id="step_count">%1$d</xliff:g>  படிகள் தொலைவில் நீங்கள் இப்போது உள்ளீர்கள்.</item>
+    </plurals>
+    <string name="show_dev_on_cm">நீங்கள் வளர்ச்சி அமைப்புகளை செயல்படுத்தினீர்கள்!</string>
+    <string name="show_dev_already_cm">தேவை இல்லை, நீங்கள் முன்பே வளர்ச்சி அமைப்புகளை செயல்படுத்துவிட்டீர்கள்.</string>
+    <string name="peak_refresh_rate_summary_custom">சில உள்ளடக்கத்திற்குப் புதுப்பிக்கும் விகிதத்தை 60லிருந்து %1$d Hzக்குத் தானாகவே உயர்த்தும். இதனால் பேட்டரி உபயோகம் அதிகரிக்கும்.</string>
+    <string name="high_touch_sensitivity_title">உயர்ந்த தொடல் உணர்திறன்</string>
+    <string name="high_touch_sensitivity_summary">கையுறை அணிந்தும் அதை பயன்படுத்தும்படி தொடல்திறை உணர்திறனை அதிகரிக்கவும்</string>
+    <string name="increasing_ring_volume_option_title">ரிங் வால்யூமை அதிகரித்தல்</string>
+    <string name="increasing_ring_min_volume_title">வால்யூமை தொடங்கு</string>
+    <string name="increasing_ring_ramp_up_time_title">ராம்ப்-அப் நேரம்</string>
+    <string name="lockpattern_settings_enable_error_path_title">பேட்டர்ன் பிழையை காட்டு</string>
+    <string name="lockpattern_settings_enable_dots_title">பேட்டர்ன் புள்ளிகளை காட்டு</string>
+    <string name="unlock_scramble_pin_layout_title">ஸ்க்ராம்பில் லேயவுட்</string>
+    <string name="unlock_scramble_pin_layout_summary">கருவியை திறக்கும்போது PIN லேயவுட்டை ஸ்க்ராம்பில் செய்</string>
+    <string name="proximity_wake_title">தற்செயலான விழித்தலை தடு</string>
+    <string name="touchscreen_hovering_title">தொடல்திறைக்கு மேல் நகர்தல்</string>
+    <string name="touchscreen_hovering_summary">வலைதள உலாவிகள், ரிமோட்-டெஸ்க்டாப்புகள் உள்ளிட்டவற்றில் மவுஸ் போன்று நீங்கள் திரையின் மீது உலாவ உங்களை அனுமதிக்கிறது</string>
+    <string name="wake_when_plugged_or_unplugged_title">பிளக் செய்தால் விழி</string>
+    <string name="wake_when_plugged_or_unplugged_summary">ஒரு மின் வளத்தை இணைத்தல் அல்லது துண்டித்தலின் போது திரையை ஆன் செய்க</string>
+</resources>
diff --git a/res/values-te/cm_strings.xml b/res/values-te/cm_strings.xml
new file mode 100644
index 0000000..49310e8
--- /dev/null
+++ b/res/values-te/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">సయనోజెన్ మోడ్ లీగల్</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">డెవలప్మెంట్ సెట్టింగులను ప్రారంభించడానికి ఇప్పుడు మీరు <xliff:g id="step_count">%1$d</xliff:g> అడుగు దూరంలో ఉన్నారు.</item>
+        <item quantity="other">డెవలప్మెంట్ సెట్టింగులను ప్రారంభించడానికి ఇప్పుడు మీరు <xliff:g id="step_count">%1$d</xliff:g> అడుగుల దూరంలో ఉన్నారు.</item>
+    </plurals>
+    <string name="show_dev_on_cm">మీరు ఇప్పుడు డెవలప్మెంట్ సెట్టింగులను ప్రారంభించారు!</string>
+    <string name="show_dev_already_cm">అవసరం లేదు, మీరు ఇప్పటికే డెవలప్మెంట్ సెట్టింగులను ప్రారంభించేశారు.</string>
+    <string name="peak_refresh_rate_summary_custom">కొంత కంటెంట్ కోసం రిఫ్రెష్ రేటును ఆటోమేటిక్‌గా 60 నుండి %1$d Hz వరకు పెంచుతుంది. బ్యాటరీ వినియోగం పెరుగుతుంది.</string>
+    <string name="high_touch_sensitivity_title">అధిక స్పర్శ సున్నితత్వం</string>
+    <string name="high_touch_sensitivity_summary">టచ్ స్క్రీన్ సున్నితత్వాన్ని పెంచండి ఎందుకంటే చేతి తొడుగులు వేసుకున్నప్పుడు అది ఉపయోగపడుతుంది</string>
+    <string name="increasing_ring_volume_option_title">రింగ్ వాల్యూమును పెంచడం</string>
+    <string name="increasing_ring_min_volume_title">ప్రారంభ వాల్యూమ్</string>
+    <string name="increasing_ring_ramp_up_time_title">రాంప్-అప్ సమయం</string>
+    <string name="lockpattern_settings_enable_error_path_title">నమూనా దోషాన్ని చూపుము</string>
+    <string name="lockpattern_settings_enable_dots_title">నమూనా చుక్కలను చూపుము</string>
+    <string name="unlock_scramble_pin_layout_title">క్రమరాహిత్య లేఅవుట్</string>
+    <string name="unlock_scramble_pin_layout_summary">పరికరాన్ని అన్లాక్ చేసేటప్పుడు PIN లేఅవుట్ ను క్రమరాహిత్యం చేయండి</string>
+    <string name="proximity_wake_title">అప్రయత్నంగా మేల్కొల్పబడటాన్ని నివారించండి</string>
+    <string name="touchscreen_hovering_title">టచ్ స్క్రీన్ యొక్క హోవరింగ్ స్వభావం</string>
+    <string name="touchscreen_hovering_summary">వెబ్ బౌజర్లు, రిమోట్ డెస్క్‌టాప్‌లు, మొదలైన వాటిలో మౌస్ వలే తెరను హోవర్ చేయడానికి అనుమతిస్తుంది</string>
+    <string name="wake_when_plugged_or_unplugged_title">మేల్కొలుపు ప్లగ్</string>
+    <string name="wake_when_plugged_or_unplugged_summary">విద్యుత్ ఆధారాన్ని అనుసంధానం చేసేటప్పుడు లేదా తొలిగించేటప్పుడు స్క్రీనును ఆన్ చేయండి</string>
+</resources>
diff --git a/res/values-th/cm_strings.xml b/res/values-th/cm_strings.xml
new file mode 100644
index 0000000..bce17bc
--- /dev/null
+++ b/res/values-th/cm_strings.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">เพิ่มเติม</string>
+    <string name="advanced_keyboard_settings_title">การตั้งค่าขั้นสูง</string>
+    <string name="adb_enable_root">การดีบักแบบรูท</string>
+    <string name="adb_enable_summary_root">อนุญาตการดีบัก Android ในฐานะรูท</string>
+    <string name="berry_black_theme_title">ดำสนิท</string>
+    <string name="berry_black_theme_summary">พื้นหลังสีดำสนิทสำหรับธีมมืด</string>
+    <string name="lineagelicense_title">เกี่ยวกับกฎหมาย LineageOS</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">คุณเหลืออีก <xliff:g id="step_count">%1$d</xliff:g> ขั้นก่อนจะสามารถเปิดใช้งานการตั้งค่าการพัฒนา</item>
+    </plurals>
+    <string name="show_dev_on_cm">คุณเปิดใช้งานการตั้งค่าการพัฒนาแล้ว!</string>
+    <string name="show_dev_already_cm">ไม่จำเป็น คุณได้เปิดใช้งานการตั้งค่าการพัฒนาแล้ว</string>
+    <string name="peak_refresh_rate_summary_custom">เพิ่มอัตราการรีเฟรชจาก 60 เป็น %1$d Hz โดยอัตโนมัติสำหรับเนื้อหาบางรายการ เพิ่มการใช้งานแบตเตอรี่</string>
+    <string name="status_bar_double_tap_to_sleep_title">แตะเพื่อหลับ</string>
+    <string name="status_bar_double_tap_to_sleep_summary">แตะสองครั้งที่แถบสถานะเพื่อพักหน้าจอ</string>
+    <string name="heads_up_notifications_enabled_title">การแจ้งเตือนด้านบน</string>
+    <string name="high_touch_sensitivity_title">ความไวต่อสัมผัสสูง</string>
+    <string name="high_touch_sensitivity_summary">เพิ่มความไวของหน้าจอสัมผัสเพื่อสามารถใช้ขณะสวมถุงมือ</string>
+    <string name="tethering_allow_vpn_upstreams_title">อนุญาตให้ไคลเอ็นต์ใช้ VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">อนุญาตให้ไคลเอ็นต์ฮอตสปอตเชื่อมต่อ VPN ของอุปกรณ์นี้ สำหรับการเชื่อมต่ออัปสตรีม</string>
+    <string name="increasing_ring_volume_option_title">การเพิ่มเสียงเรียกเข้า</string>
+    <string name="increasing_ring_min_volume_title">ระดับเสียงเริ่มต้น</string>
+    <string name="increasing_ring_ramp_up_time_title">ระยะเวลาที่ดังเพิ่มขึ้น</string>
+    <string name="lockscreen_media_art_title">แสดงหน้าปกสื่อ</string>
+    <string name="lock_settings_picker_pattern_size_message">เลือกขนาดรูปแบบ</string>
+    <string name="lockpattern_settings_enable_error_path_title">แสดงลายเส้นที่ผิดพลาด</string>
+    <string name="lockpattern_settings_enable_dots_title">แสดงจุดที่ลากผ่าน</string>
+    <string name="min_refresh_rate_title">อัตรารีเฟรชต่ำสุด</string>
+    <string name="app_notification_sound_timeout_title">ระยะเวลาขั้นต่ำระหว่างเสียงการแจ้งเตือน</string>
+    <string name="app_notification_sound_timeout_summary_template">อนุญาตให้มีเสียงหรือการสั่นไม่เกินหนึ่งครั้งทุก <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">ไม่จำกัด</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 วินาที</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 วินาที</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 นาที</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 นาที</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 นาที</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 นาที</string>
+    <string name="data_usage_app_restrict_mobile">ข้อมูลมือถือ</string>
+    <string name="data_usage_app_restrict_mobile_summary">เปิดใช้งานการใช้ข้อมูลมือถือ</string>
+    <string name="data_usage_app_restrict_vpn">ข้อมูล VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">เปิดใช้งานการใช้ข้อมูล VPN</string>
+    <string name="data_usage_app_restrict_wifi">ข้อมูล Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">เปิดการใช้งานของข้อมูล Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">แบบสุ่มสลับ</string>
+    <string name="unlock_scramble_pin_layout_summary">สุ่มสลับรหัสเมื่อปลดล็อคอุปกรณ์</string>
+    <string name="proximity_wake_title">ป้องกันการเปิดหน้าจอโดยไม่เจตนา</string>
+    <string name="proximity_wake_summary">ตรวจสอบด้วยเซ็นเซอร์ก่อนปลุกหน้าจอ</string>
+    <string name="touchscreen_gesture_settings_title">ท่าทางสัมผัสบนหน้าจอ</string>
+    <string name="touchscreen_gesture_settings_summary">ใช้ท่าทางสัมผัสรูปแบบต่าง ๆ เพื่อการทำงานที่รวดเร็วขึ้น</string>
+    <string name="touchscreen_hovering_title">วางนิ้วเหนือจอ</string>
+    <string name="touchscreen_hovering_summary">อนุญาตให้คุณสามารถวางนิ้วเหนือจอเหมือนการวางเม้าส์เหนือปุ่มในคอมพิวเตอร์</string>
+    <string name="wake_when_plugged_or_unplugged_title">ตื่นเมื่อเสียบปลั๊ก</string>
+    <string name="wake_when_plugged_or_unplugged_summary">เปิดหน้าจอเมื่อเชื่อมต่อหรือตัดการเชื่อมต่อกับแหล่งจ่ายไฟ</string>
+    <string name="fast_charging_title">ชาร์จเร็ว</string>
+    <string name="fast_charging_summary">ปิดใช้งานเพื่อลดความร้อนที่เกิดจากอุปกรณ์ขณะชาร์จ หรือเพื่อยืดอายุการใช้งานของแบตเตอรี่</string>
+</resources>
diff --git a/res/values-tl/cm_strings.xml b/res/values-tl/cm_strings.xml
new file mode 100644
index 0000000..bd167cc
--- /dev/null
+++ b/res/values-tl/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Awtomatikong itinataas sa %1$d Hz mula sa 60 Hz ang refresh rate para sa ilang content. Mas lumalakas ang paggamit ng baterya.</string>
+</resources>
diff --git a/res/values-tr/cm_strings.xml b/res/values-tr/cm_strings.xml
new file mode 100644
index 0000000..26bd425
--- /dev/null
+++ b/res/values-tr/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Ekstralar</string>
+    <string name="advanced_keyboard_settings_title">Gelişmiş ayarlar</string>
+    <string name="adb_enable_root">Rootlu hata ayıklama</string>
+    <string name="adb_enable_summary_root">Android hata ayıklamanın rootlu olarak çalışmasına izin verin</string>
+    <string name="backup_transport_setting_label">Yedekleme sağlayıcısını değiştir</string>
+    <string name="backup_transport_title">Yedekleme sağlayıcısını seçin</string>
+    <string name="berry_black_theme_title">Saf siyah</string>
+    <string name="berry_black_theme_summary">Karanlık tema için saf siyah arka plan</string>
+    <string name="lineagelicense_title">LineageOS yasal</string>
+    <string name="device_info_protected_single_press">Bilgileri göstermek için dokunun</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">Geliştirici ayarlarının etkinleştirilmesi için <xliff:g id="step_count">%1$d</xliff:g> adım kaldı.</item>
+        <item quantity="other">Geliştirici ayarlarının etkinleştirilmesi için <xliff:g id="step_count">%1$d</xliff:g> adım kaldı.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Geliştirici ayarlarını etkinleştirdiniz!</string>
+    <string name="show_dev_already_cm">Gerek yok, zaten geliştirme ayarlarını etkinleştirdiniz.</string>
+    <string name="peak_refresh_rate_summary_custom">Bazı içerikler için yenileme hızını otomatik olarak 60 Hz\'den %1$d Hz\'e yükseltir. Pil kullanımını artırır.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Uyutmak için dokunun</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Ekranı kapatmak için durum çubuğuna veya kilit ekranına çift dokunun</string>
+    <string name="high_touch_polling_rate_title">Yüksek dokunmatik yoklama oranı</string>
+    <string name="high_touch_polling_rate_summary">Dokunmatik ekran yoklama oranını artırın</string>
+    <string name="heads_up_notifications_enabled_title">Bildirim pencereleri</string>
+    <string name="heads_up_notifications_enabled_summary">Küçük bir yüzen pencerede öncelikli bildirimleri görüntüle</string>
+    <string name="high_touch_sensitivity_title">Yüksek dokunma hassasiyeti</string>
+    <string name="high_touch_sensitivity_summary">Dokunmatik ekran hassasiyetini arttırarak eldiven ile kullanıma olanak verir</string>
+    <string name="tethering_allow_vpn_upstreams_title">İstemcilerin VPN kullanmasına izin ver</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Hotspot kullanıcılarının bağlantıları sırasında bu cihazın \u2019s VPN bağlantısını kullanmasına izin ver</string>
+    <string name="increasing_ring_volume_option_title">Artan zil sesi</string>
+    <string name="increasing_ring_min_volume_title">Başlangıç sesi</string>
+    <string name="increasing_ring_ramp_up_time_title">Yükselme zamanı</string>
+    <string name="lockscreen_media_art_title">Medya kapak resmini göster</string>
+    <string name="lock_settings_picker_pattern_size_message">Bir desen boyutu seçin</string>
+    <string name="lockpattern_settings_enable_error_path_title">Desen hatasını göster</string>
+    <string name="lockpattern_settings_enable_dots_title">Desen noktalarını göster</string>
+    <string name="max_refresh_rate_title">En yüksek yenileme hızı</string>
+    <string name="min_refresh_rate_title">Minimum yenileme hızı</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Tabletinizin önündeki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Cihazınızın önündeki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonunuzun önündeki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Tabletinizin arkasındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Cihazınızın arkasındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonunuzun arkasındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Tabletinizin yan tarafındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Cihazınızın yan tarafındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonunuzun yan tarafındaki parmak izi sensörünü bulun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tabletinizin önündeki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cihazınızın önündeki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Telefonunuzun önündeki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tabletinizin arkasındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cihazınızın arkasındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Telefonunuzun arkasındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tabletinizin yan tarafındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cihazınızın yan tarafındaki sensöre dokunun.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Telefonunuzun yan tarafındaki sensöre dokunun.</string>
+    <string name="show_navbar_hint_title">Gezinme ipucu</string>
+    <string name="show_navbar_hint_summary">Ekranın altında gezinme ipucu çubuğunu göster</string>
+    <string name="app_notification_sound_timeout_title">Bildirim sesleri arasında en az zaman</string>
+    <string name="app_notification_sound_timeout_summary_template">Bir defadan fazla olmayacak şekilde her <xliff:g id="duration">%1$s</xliff:g>\'da bir titreme veya sese izin ver</string>
+    <string name="app_notification_sound_timeout_value_none">Kısıtlama yok</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 saniye</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 Saniye</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 dakika</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 dakika</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 dakika</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 dakika</string>
+    <string name="auto_brightness_one_shot_title">Tek seferlik otomatik parlaklık</string>
+    <string name="auto_brightness_one_shot_summary">Parlaklık ayarı yalnızca ekran açıldığında gerçekleşir</string>
+    <string name="data_usage_app_restrict_all">Ağ erişimine izin ver</string>
+    <string name="data_usage_app_restrict_all_summary">Ağ kullanımını etkinleştir</string>
+    <string name="data_usage_app_restrict_mobile">Mobil veri</string>
+    <string name="data_usage_app_restrict_mobile_summary">Mobil veri kullanımını etkinleştir</string>
+    <string name="data_usage_app_restrict_vpn">VPN verileri</string>
+    <string name="data_usage_app_restrict_vpn_summary">VPN veri kullanımını etkinleştir</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi veri</string>
+    <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi veri kullanımını etkinleştir</string>
+    <string name="unlock_scramble_pin_layout_title">Düzeni karıştır</string>
+    <string name="unlock_scramble_pin_layout_summary">Cihaz kilidini açarken PIN düzenini karıştırır</string>
+    <string name="proximity_wake_title">Yanlış uyandırmaları önle</string>
+    <string name="proximity_wake_summary">Ekranı uyandırmadan önce yakınlık sensörünü kontrol et</string>
+    <string name="touchscreen_gesture_settings_title">Ekran hareketleri</string>
+    <string name="touchscreen_gesture_settings_summary">Hızlı işlemler için çeşitli dokunmatik ekran hareketleri gerçekleştirin</string>
+    <string name="touchscreen_hovering_title">Dokunmatik ekrana dokunmadan gezinme</string>
+    <string name="touchscreen_hovering_summary">Ekrana dokunmadan parmağınızı yakınlaştırarak bir fare kullanıyormuş gibi web tarayıcılarında, uzak masaüstlerinde, vb. dolaşmanızı sağlar</string>
+    <string name="wake_when_plugged_or_unplugged_title">Takıp çıkarmada uyan</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Bir güç kaynağına bağlanırken ya da bağlantısını keserken ekranı aç</string>
+    <string name="fast_charging_title">Hızlı şarj oluyor</string>
+    <string name="fast_charging_summary">Cihazın şarj ederken ürettiği ısıyı azaltmak veya pilin ömrünü uzatmak için devre dışı bırakın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Telefonun kilidini açmak için parmak izi sensörüne uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Tabletin kilidini açmak için parmak izi sensörüne uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Cihazın kilidini açmak için parmak izi sensörüne uzun basın</string>
+    <string name="ambient_display_screen_off_udfps_summary">Ekranınızı uyandırmak ve kilidini açmak için ekranın altındaki parmak izi sensörünüze uzun basın.</string>
+    <string name="storage_warning_internal">Uyarı: Bu özellik düzgün çalışmayabileceğinden veya veri kaybına neden olabileceğinden önerilmez!</string>
+</resources>
diff --git a/res/values-ug/cm_strings.xml b/res/values-ug/cm_strings.xml
new file mode 100644
index 0000000..0cd399b
--- /dev/null
+++ b/res/values-ug/cm_strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS قانۇن ئۇچۇرى</string>
+    <string name="show_dev_on_cm">ئىجادكارلار تەڭشەكلىرىنى قوزغاتتىڭىز!</string>
+    <string name="show_dev_already_cm">ھاجەتسىز، سىز ئاللىبۇرۇن ئىجادكارلار تەڭشەكلىرىنى قوزغاتقان.</string>
+    <string name="high_touch_sensitivity_title">سەزگۈر ئېكراننىڭ يۇقىرى سېزىمچانلىقى</string>
+    <string name="high_touch_sensitivity_summary">سەزگۈر ئېكراننىڭ سېزىمچانلىقىنى كۈچەيتىپ پەلەي كىيگەندە ئىشلىتىشكە قولايلىق يارىتىدۇ</string>
+    <string name="increasing_ring_volume_option_title">قوڭغۇراق ئاۋازىنى تەدرىجىي كۈچەيتىش</string>
+    <string name="increasing_ring_min_volume_title">باشلاش ئاۋازى</string>
+    <string name="increasing_ring_ramp_up_time_title">كۈچەيتىش ۋاقتى</string>
+    <string name="lockpattern_settings_enable_error_path_title">ئەندىزە خاتالىقىنى كۆرسىتىش</string>
+    <string name="lockpattern_settings_enable_dots_title">ئەندىزە نۇقتىسىنى كۆرسىتىش</string>
+    <string name="unlock_scramble_pin_layout_title">قالايمىقان جايلاشتۇرۇش</string>
+    <string name="unlock_scramble_pin_layout_summary">ئۈسكۈنە قۇلۇپىنى ئاچقاندا قالايمىقان تەرتىپتىكى PIN جايلاشتۇرۇشنى ئىشلىتىدۇ</string>
+    <string name="proximity_wake_title">تاسادىپىي ئويغىتىشنىڭ ئالدىنى ئېلىش</string>
+    <string name="touchscreen_hovering_title">لەيلىتىش مەشغۇلاتى</string>
+    <string name="touchscreen_hovering_summary">بارمىقىڭىزنى ئېكراننىڭ ئۈستىگە لەيلىتىپ توركۆرگۈ، يىراقتىكى ئۈستەلئۈستى قاتارلىقلارنىڭ چاشقىنەك ئىستىرىلكىسى سۈپىتىدە ئىشلىتىشىگە يول قويىدۇ</string>
+    <string name="wake_when_plugged_or_unplugged_title">چېتىلغاندا ئويغات</string>
+    <string name="wake_when_plugged_or_unplugged_summary">توكقا چېتىلغان ياكى ئۈزۈلگەندە ئېكراننى ئاچىدۇ</string>
+</resources>
diff --git a/res/values-uk/cm_strings.xml b/res/values-uk/cm_strings.xml
new file mode 100644
index 0000000..3e38e06
--- /dev/null
+++ b/res/values-uk/cm_strings.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="adb_enable_root">Налагодження суперкористувачем</string>
+    <string name="adb_enable_summary_root">Дозволити налагодження Android із правами суперкористувача</string>
+    <string name="backup_transport_setting_label">Змінити провайдера резервного копіювання</string>
+    <string name="backup_transport_title">Оберіть провайдера резервного копіювання</string>
+    <string name="lineagelicense_title">Політика конфіденційності LineageOS</string>
+    <string name="show_dev_on_cm">Ви увімкнули налаштування розробника!</string>
+    <string name="show_dev_already_cm">Це зайве, параметри розробки вже ввімкнено.</string>
+    <string name="peak_refresh_rate_summary_custom">Автоматично збільшує частоту оновлення певного вмісту з 60 до %1$d Гц. Підвищує використання заряду акумулятора.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Торкніться для сну</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Двічі торкніть рядок стану чи екран блокування, щоб приспати екран</string>
+    <string name="heads_up_notifications_enabled_title">Спливаючі сповіщення</string>
+    <string name="heads_up_notifications_enabled_summary">Відображати пріоритетні сповіщення у невеликому плаваючому вікні</string>
+    <string name="high_touch_sensitivity_title">Висока чутливість дотику</string>
+    <string name="high_touch_sensitivity_summary">Підвищити чутливість сенсорного екрану для користуванням пристроєм у рукавичках</string>
+    <string name="tethering_allow_vpn_upstreams_title">Дозволити клієнтам використовувати VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Пропускати трафік клієнтів точки доступу через VPN-з\'єднання цього пристрою</string>
+    <string name="increasing_ring_volume_option_title">Наростаюча гучність дзвінка</string>
+    <string name="increasing_ring_min_volume_title">Початкова гучність</string>
+    <string name="increasing_ring_ramp_up_time_title">Час збільшення</string>
+    <string name="lockscreen_media_art_title">Показувати обкладинку мультимедіа</string>
+    <string name="lock_settings_picker_pattern_size_message">Оберіть розмір шаблону</string>
+    <string name="lockpattern_settings_enable_error_path_title">Показувати неправильний ключ</string>
+    <string name="lockpattern_settings_enable_dots_title">Показувати точки</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Знайдіть сканер відбитків пальців спереду планшета.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Знайдіть сканер відбитків пальців спереду пристрою.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Знайдіть сканер відбитків пальців спереду телефона.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Знайдіть сканер відбитків пальців ззаду планшета.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Знайдіть сканер відбитків пальців ззаду пристрою.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Знайдіть сканер відбитків пальців ззаду телефона.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Знайдіть сканер відбитків пальців збоку планшета.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Знайдіть сканер відбитків пальців збоку пристрою.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Знайдіть сканер відбитків пальців збоку телефона.</string>
+    <string name="show_navbar_hint_title">Панель навігації</string>
+    <string name="show_navbar_hint_summary">Показувати панель навігації внизу екрану</string>
+    <string name="app_notification_sound_timeout_title">Мінімальний час між звуками повідомлень</string>
+    <string name="app_notification_sound_timeout_summary_template">Дозволити звуки або вібрації не більше ніж один раз кожні <xliff:g id="duration">%1$s </xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Без обмежень</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 секунд</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 хвилина</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 хвилин</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 хвилин</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 хвилин</string>
+    <string name="data_usage_app_restrict_all">Мережа</string>
+    <string name="data_usage_app_restrict_all_summary">Дозволити використання мережі</string>
+    <string name="data_usage_app_restrict_vpn">Дані VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Дозволити використання даних VPN</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi-дані</string>
+    <string name="data_usage_app_restrict_wifi_summary">Дозволити використання Wi\u2011Fi-даних</string>
+    <string name="unlock_scramble_pin_layout_title">Перемішана розкладка</string>
+    <string name="unlock_scramble_pin_layout_summary">Перемішувати розкладку PIN-коду під час розблокування пристрою</string>
+    <string name="proximity_wake_title">Запобігання випадкового пробудження</string>
+    <string name="touchscreen_gesture_settings_title">Жести сенсорного екрану</string>
+    <string name="touchscreen_hovering_title">Зависання над сенсорним екраном</string>
+    <string name="touchscreen_hovering_summary">Дозволяє виділяти елементи інтерфейсу при зависанні над ними без дотику</string>
+    <string name="wake_when_plugged_or_unplugged_title">Екран прокидається при підключені</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Екран прокидається при підключені до зарядного пристрою</string>
+</resources>
diff --git a/res/values-ur/cm_strings.xml b/res/values-ur/cm_strings.xml
new file mode 100644
index 0000000..22c08b8
--- /dev/null
+++ b/res/values-ur/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">‏کچھ مواد کے لیے 60 سے %1$d Hz تک ریفریش کی شرح خودکار طور پر بڑھ جاتی ہے۔ بیٹری کے استعمال میں اضافہ کرتا ہے۔</string>
+</resources>
diff --git a/res/values-uz/cm_strings.xml b/res/values-uz/cm_strings.xml
new file mode 100644
index 0000000..dd273eb
--- /dev/null
+++ b/res/values-uz/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Ayrim kontent uchun ekranning yangilanish chastotasi 60-%1$d Gs orasida almashib turadi. Batareya tezroq sarflanadi.</string>
+</resources>
diff --git a/res/values-vi/cm_strings.xml b/res/values-vi/cm_strings.xml
new file mode 100644
index 0000000..7397b82
--- /dev/null
+++ b/res/values-vi/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">Thêm</string>
+    <string name="advanced_keyboard_settings_title">Cài đặt nâng cao</string>
+    <string name="adb_enable_root">Gỡ lỗi với quyền root</string>
+    <string name="adb_enable_summary_root">Cho phép chạy gỡ lỗi Android với quyền root</string>
+    <string name="backup_transport_setting_label">Thay đổi nơi lưu trữ dữ liệu sao lưu của bạn</string>
+    <string name="backup_transport_title">Chọn nơi lưu trữ dữ liệu sao lưu</string>
+    <string name="berry_black_theme_title">Đen tuyền</string>
+    <string name="berry_black_theme_summary">Nền đen tuyền cho chủ đề tối</string>
+    <string name="lineagelicense_title">Bộ phận pháp chế của LineageOS</string>
+    <string name="device_info_protected_single_press">Chạm để hiển thị thông tin</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">Hiện tại bạn còn <xliff:g id="step_count">%1$d</xliff:g> bước nữa để bật cài đặt nhà phát triển.</item>
+    </plurals>
+    <string name="show_dev_on_cm">Bạn đã bật cài đặt nhà phát triển!</string>
+    <string name="show_dev_already_cm">Không cần thiết, bạn đã bật cài đặt nhà phát triển.</string>
+    <string name="peak_refresh_rate_summary_custom">Tự động tăng tốc độ làm mới từ 60 lên %1$d Hz đối với một số nội dung. Làm tăng mức sử dụng pin.</string>
+    <string name="status_bar_double_tap_to_sleep_title">Chạm để tắt màn hình</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Chạm hai lần vào thanh trạng thái hoặc màn hình khoá để tắt màn hình</string>
+    <string name="high_touch_polling_rate_title">Tỷ lệ làm mới cảm ứng cao</string>
+    <string name="high_touch_polling_rate_summary">Tăng tỷ lệ làm mới trên màn hình cảm ứng</string>
+    <string name="heads_up_notifications_enabled_title">Thông báo nổi</string>
+    <string name="heads_up_notifications_enabled_summary">Hiển thị các thông báo ưu tiên trong một cửa sổ nổi nhỏ</string>
+    <string name="high_touch_sensitivity_title">Độ nhạy cảm ứng cao</string>
+    <string name="high_touch_sensitivity_summary">Tăng độ nhạy màn hình cảm ứng để nó có thể được sử dụng trong khi đeo găng tay</string>
+    <string name="tethering_allow_vpn_upstreams_title">Cho phép máy khách sử dụng VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Cho phép hotspot các máy khách sử dụng các kết nối VPN của thiết bị\u2019 này để kết nối đến máy chủ</string>
+    <string name="increasing_ring_volume_option_title">Tăng âm lượng chuông</string>
+    <string name="increasing_ring_min_volume_title">Âm lượng khởi động</string>
+    <string name="increasing_ring_ramp_up_time_title">Thời gian tăng</string>
+    <string name="lockscreen_media_art_title">Hiển thị ảnh bìa phương tiện</string>
+    <string name="lock_settings_picker_pattern_size_message">Chọn một kích cỡ mẫu hình</string>
+    <string name="lockpattern_settings_enable_error_path_title">Hiện lỗi mẫu hình</string>
+    <string name="lockpattern_settings_enable_dots_title">Hiện dấu chấm mẫu hình</string>
+    <string name="max_refresh_rate_title">Tốc độ làm mới cao nhất</string>
+    <string name="min_refresh_rate_title">Tốc độ làm mới tối thiểu</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Xác định vị trí của cảm biến vân tay ở mặt trước máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Xác định vị trí của cảm biến vân tay ở mặt trước thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Xác định vị trí của cảm biến vân tay ở mặt trước điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Xác định cảm biến vân tay ở mặt sau máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Xác định cảm biến vân tay ở mặt sau thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Xác định cảm biến vân tay ở mặt sau điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Xác định vị trí của cảm biến vân tay ở bên cạnh máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Xác định cảm biến vân tay ở bên cạnh thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Xác định vị trí của cảm biến vân tay ở bên cạnh điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Chạm vào cảm biến ở mặt trước máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Chạm vào cảm biến ở mặt trước thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Chạm vào cảm biến ở mặt trước điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Chạm vào cảm biến ở mặt sau máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Chạm vào cảm biến ở mặt sau thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Chạm vào cảm biến ở mặt sau điện thoại của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Chạm vào cảm biến ở mặt bên máy tính bảng của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Chạm vào cảm biến ở bên cạnh thiết bị của bạn.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Chạm vào cảm biến ở mặt bên điện thoại của bạn.</string>
+    <string name="show_navbar_hint_title">Gợi ý điều hướng</string>
+    <string name="show_navbar_hint_summary">Hiển thị thanh gợi ý điều hướng ở cuối màn hình</string>
+    <string name="app_notification_sound_timeout_title">Thời gian tối thiểu giữa các âm thanh thông báo</string>
+    <string name="app_notification_sound_timeout_summary_template">Cho phép âm thanh hoặc rung không nhiều hơn một lần mỗi <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">Không giới hạn</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 giây</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 giây</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 phút</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 phút</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 phút</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 phút</string>
+    <string name="auto_brightness_one_shot_title">Tự động điều chỉnh độ sáng một lần duy nhất</string>
+    <string name="auto_brightness_one_shot_summary">Điều chỉnh độ sáng sẽ chỉ thực hiện một lần duy nhất khi màn hình được bật</string>
+    <string name="data_usage_app_restrict_all">Cho phép truy cập mạng</string>
+    <string name="data_usage_app_restrict_all_summary">Bật chế độ theo dõi dung lượng kết nối.</string>
+    <string name="data_usage_app_restrict_mobile">Dữ liệu di động</string>
+    <string name="data_usage_app_restrict_mobile_summary">Bật cho phép sử dụng dữ liệu di động</string>
+    <string name="data_usage_app_restrict_vpn">Dữ liệu VPN</string>
+    <string name="data_usage_app_restrict_vpn_summary">Cho phép sử dụng dữ liệu VPN</string>
+    <string name="data_usage_app_restrict_wifi">Dữ liệu Wi\u2011Fi</string>
+    <string name="data_usage_app_restrict_wifi_summary">Bật sử dụng dữ liệu Wi\u2011Fi</string>
+    <string name="unlock_scramble_pin_layout_title">Bố trí linh tinh</string>
+    <string name="unlock_scramble_pin_layout_summary">Bố trí PIN linh tinh khi mở khóa thiết bị</string>
+    <string name="proximity_wake_title">Ngăn ngừa tình cờ mở màn hình</string>
+    <string name="proximity_wake_summary">Kiểm tra cảm biến tiệm cận trước khi mở màn hình</string>
+    <string name="touchscreen_gesture_settings_title">Cử chỉ màn hình cảm ứng</string>
+    <string name="touchscreen_gesture_settings_summary">Thực hiện các cử chỉ màn hình cảm ứng khác nhau cho các thao tác nhanh</string>
+    <string name="touchscreen_hovering_title">Di trên màn hình cảm ứng</string>
+    <string name="touchscreen_hovering_summary">Cho phép bạn di trên màn hình như chuột trong trình duyệt web, điều khiển máy tính từ xa, v.v.</string>
+    <string name="wake_when_plugged_or_unplugged_title">Sáng màn hình khi cắm sạc</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Bật màn hình khi kết nối hoặc ngắt kết nối nguồn điện</string>
+    <string name="fast_charging_title">Đang sạc nhanh</string>
+    <string name="fast_charging_summary">Tắt để giảm nhiệt do thiết bị tạo ra trong khi sạc hoặc để kéo dài tuổi thọ của pin</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">Giữ cảm biến vân tay để mở khóa điện thoại</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Giữ cảm biến vân tay để mở khóa máy tính bảng</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">Giữ cảm biến vân tay để mở khóa thiết bị</string>
+    <string name="ambient_display_screen_off_udfps_summary">Để đánh thức màn hình và mở khóa, đặt ngón tay vào cảm biến vân tay dưới màn hình của bạn</string>
+    <string name="storage_warning_internal">Cảnh báo: Tùy chọn này có thể không hoạt động bình thường hoặc dẫn đến mất dữ liệu và do đó không được khuyến khích</string>
+</resources>
diff --git a/res/values-zh-rCN/cm_strings.xml b/res/values-zh-rCN/cm_strings.xml
new file mode 100644
index 0000000..a87486e
--- /dev/null
+++ b/res/values-zh-rCN/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">附加功能</string>
+    <string name="advanced_keyboard_settings_title">高级设置</string>
+    <string name="adb_enable_root">Root 身份的调试</string>
+    <string name="adb_enable_summary_root">允许以 root 身份运行 Android 调试</string>
+    <string name="backup_transport_setting_label">更改备份提供商</string>
+    <string name="backup_transport_title">选择备份提供商</string>
+    <string name="berry_black_theme_title">纯黑色</string>
+    <string name="berry_black_theme_summary">暗色主题使用纯黑色背景</string>
+    <string name="lineagelicense_title">LineageOS 法律信息</string>
+    <string name="device_info_protected_single_press">点击以显示信息</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">还需 <xliff:g id="step_count">%1$d</xliff:g> 步就可以启用开发者选项。</item>
+    </plurals>
+    <string name="show_dev_on_cm">您已经启用了开发者选项！</string>
+    <string name="show_dev_already_cm">不用了，您已启用开发者选项。</string>
+    <string name="peak_refresh_rate_summary_custom">自动将某些内容的刷新频率从 60 Hz 调高到 %1$d Hz。这么做会增加耗电量。</string>
+    <string name="status_bar_double_tap_to_sleep_title">双击关屏</string>
+    <string name="status_bar_double_tap_to_sleep_summary">双击状态栏或锁屏以关闭屏幕</string>
+    <string name="high_touch_polling_rate_title">高触控采样率</string>
+    <string name="high_touch_polling_rate_summary">提高触摸屏采样率</string>
+    <string name="heads_up_notifications_enabled_title">浮动通知</string>
+    <string name="heads_up_notifications_enabled_summary">在一个小的浮动窗口中显示优先通知</string>
+    <string name="high_touch_sensitivity_title">触摸屏高灵敏度</string>
+    <string name="high_touch_sensitivity_summary">增加触摸屏的灵敏度，以便在戴手套时使用</string>
+    <string name="tethering_allow_vpn_upstreams_title">允许客户端使用 VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">允许热点客户端使用此设备的 VPN 连接到上游连接</string>
+    <string name="increasing_ring_volume_option_title">铃声音量渐强</string>
+    <string name="increasing_ring_min_volume_title">初始音量</string>
+    <string name="increasing_ring_ramp_up_time_title">增强时间</string>
+    <string name="lockscreen_media_art_title">显示媒体艺术封面</string>
+    <string name="lock_settings_picker_pattern_size_message">选择图案大小</string>
+    <string name="lockpattern_settings_enable_error_path_title">显示图案错误</string>
+    <string name="lockpattern_settings_enable_dots_title">显示图案圆点</string>
+    <string name="max_refresh_rate_title">最高刷新率</string>
+    <string name="min_refresh_rate_title">最小刷新率</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">在您的平板电脑正面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">在您的设备正面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">在您的手机正面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">在您的平板电脑背面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">在您的设备背面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">在您的手机背面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">在您的平板电脑侧面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">在您的设备侧面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">在您的手机侧面找到指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">触摸位于平板电脑正面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">触摸位于设备正面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">触摸位于手机正面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">触摸位于平板电脑背面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">触摸位于设备背面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">触摸位于手机背面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">触摸位于平板电脑侧面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">触摸位于设备侧面的指纹传感器。</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">触摸位于手机侧面的指纹传感器。</string>
+    <string name="show_navbar_hint_title">导航提示</string>
+    <string name="show_navbar_hint_summary">在屏幕底部显示导航提示栏</string>
+    <string name="app_notification_sound_timeout_title">最短通知铃声间隔</string>
+    <string name="app_notification_sound_timeout_summary_template">每 <xliff:g id="duration">%1$s</xliff:g> 允许一次响铃或振动</string>
+    <string name="app_notification_sound_timeout_value_none">无限制</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 秒</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 秒</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 分钟</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 分钟</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 分钟</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 分钟</string>
+    <string name="auto_brightness_one_shot_title">一键自动调整亮度</string>
+    <string name="auto_brightness_one_shot_summary">亮度调整只会在打开屏幕的那一刻发生</string>
+    <string name="data_usage_app_restrict_all">允许网络访问</string>
+    <string name="data_usage_app_restrict_all_summary">启用网络使用统计</string>
+    <string name="data_usage_app_restrict_mobile">移动数据</string>
+    <string name="data_usage_app_restrict_mobile_summary">允许使用移动数据</string>
+    <string name="data_usage_app_restrict_vpn">VPN 数据</string>
+    <string name="data_usage_app_restrict_vpn_summary">启用 VPN 的数据使用统计</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 数据</string>
+    <string name="data_usage_app_restrict_wifi_summary">启用 Wi\u2011Fi 流量使用统计</string>
+    <string name="unlock_scramble_pin_layout_title">乱序布局</string>
+    <string name="unlock_scramble_pin_layout_summary">当解锁设备时使用乱序 PIN 布局</string>
+    <string name="proximity_wake_title">防止意外唤醒</string>
+    <string name="proximity_wake_summary">唤醒屏幕前检查距离传感器</string>
+    <string name="touchscreen_gesture_settings_title">触摸屏手势</string>
+    <string name="touchscreen_gesture_settings_summary">为快捷操作采用各种触摸屏手势</string>
+    <string name="touchscreen_hovering_title">悬空操作</string>
+    <string name="touchscreen_hovering_summary">允许您将手指悬停在屏幕上作为浏览器、远程桌面等处的鼠标指针</string>
+    <string name="wake_when_plugged_or_unplugged_title">连接或移除电源时唤醒</string>
+    <string name="wake_when_plugged_or_unplugged_summary">连接或断开电源时点亮屏幕</string>
+    <string name="fast_charging_title">快速充电</string>
+    <string name="fast_charging_summary">禁用以减少设备在充电时产生的热量或延长电池的使用寿命</string>
+    <string name="ambient_display_screen_off_udfps_title" product="default">长按指纹传感器解锁手机</string>
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">长按指纹传感器解锁平板电脑</string>
+    <string name="ambient_display_screen_off_udfps_title" product="device">长按指纹传感器解锁设备</string>
+    <string name="ambient_display_screen_off_udfps_summary">要唤醒您的屏幕并解锁，长按您的屏下指纹传感器。</string>
+    <string name="storage_warning_internal">警告: 此选项可能无法正常工作或导致数据丢失, 因此不推荐!</string>
+</resources>
diff --git a/res/values-zh-rHK/cm_strings.xml b/res/values-zh-rHK/cm_strings.xml
new file mode 100644
index 0000000..ba64bfe
--- /dev/null
+++ b/res/values-zh-rHK/cm_strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="lineagelicense_title">LineageOS 法律條款</string>
+    <string name="peak_refresh_rate_summary_custom">自動將部分內容的重新整理頻率，從 60 Hz 提升到 %1$d Hz。此功能會增加耗電量。</string>
+    <string name="high_touch_sensitivity_title">高觸碰靈敏度</string>
+    <string name="high_touch_sensitivity_summary">增加觸控螢幕的靈敏度，戴著手套也可以使用手機</string>
+    <string name="increasing_ring_ramp_up_time_title">漸強時間</string>
+    <string name="lockpattern_settings_enable_error_path_title">顯示圖樣錯誤</string>
+    <string name="lockpattern_settings_enable_dots_title">顯示圖樣圓點</string>
+    <string name="unlock_scramble_pin_layout_title">無序佈局</string>
+    <string name="unlock_scramble_pin_layout_summary">解鎖裝置時使用無序 PIN 佈局</string>
+    <string name="proximity_wake_title">防止意外喚醒</string>
+    <string name="touchscreen_hovering_title">觸控螢幕懸浮</string>
+    <string name="touchscreen_hovering_summary">允許您把手指懸浮在螢幕上，像滑鼠般控制瀏覽器、遠程桌面等</string>
+    <string name="wake_when_plugged_or_unplugged_title">當接上喚醒</string>
+    <string name="wake_when_plugged_or_unplugged_summary">當連接或拔除電源時開啓螢幕</string>
+</resources>
diff --git a/res/values-zh-rTW/cm_strings.xml b/res/values-zh-rTW/cm_strings.xml
new file mode 100644
index 0000000..b0a8bb1
--- /dev/null
+++ b/res/values-zh-rTW/cm_strings.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="keyboard_extras_title">附加功能</string>
+    <string name="advanced_keyboard_settings_title">進階設定</string>
+    <string name="adb_enable_root">Root 偵錯</string>
+    <string name="adb_enable_summary_root">允許以 root 身份進行 Android 偵錯</string>
+    <string name="backup_transport_setting_label">變更備份服務提供者</string>
+    <string name="backup_transport_title">選擇備份服務提供者</string>
+    <string name="berry_black_theme_title">純黑色</string>
+    <string name="berry_black_theme_summary">深色主題使用純黑色的背景</string>
+    <string name="lineagelicense_title">LineageOS 法律條款</string>
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="other">您僅需完成剩餘的 <xliff:g id="step_count">%1$d</xliff:g> 個步驟啟用開發人員選項。</item>
+    </plurals>
+    <string name="show_dev_on_cm">您已啟用開發人員選項。</string>
+    <string name="show_dev_already_cm">不需要，您已經啟用開發人員選項。</string>
+    <string name="peak_refresh_rate_summary_custom">自動將某些內容的重新整理頻率從 60 調高到 %1$d 赫茲 (Hz)。請注意，開啟這項設定會增加電池用量。</string>
+    <string name="status_bar_double_tap_to_sleep_title">輕觸即可休眠</string>
+    <string name="status_bar_double_tap_to_sleep_summary">輕觸兩下狀態列或鎖定來關閉螢幕</string>
+    <string name="heads_up_notifications_enabled_title">浮動通知</string>
+    <string name="heads_up_notifications_enabled_summary">在一個小的浮動視窗中顯示優先通知</string>
+    <string name="high_touch_sensitivity_title">高觸控靈敏度</string>
+    <string name="high_touch_sensitivity_summary">增加觸控螢幕的靈敏度，因此戴著手套也可以使用手機</string>
+    <string name="tethering_allow_vpn_upstreams_title">允許客戶端使用 VPN</string>
+    <string name="tethering_allow_vpn_upstreams_summary">允許熱點客戶端使用此裝置的 VPN 連線進行上游連線</string>
+    <string name="increasing_ring_volume_option_title">漸強鈴聲音量</string>
+    <string name="increasing_ring_min_volume_title">開始音量</string>
+    <string name="increasing_ring_ramp_up_time_title">漸強時間</string>
+    <string name="lockscreen_media_art_title">顯示媒體封面藝術</string>
+    <string name="lock_settings_picker_pattern_size_message">選擇解鎖圖案大小</string>
+    <string name="lockpattern_settings_enable_error_path_title">顯示解鎖圖案錯誤</string>
+    <string name="lockpattern_settings_enable_dots_title">顯示解鎖圖案節點</string>
+    <string name="min_refresh_rate_title">最低更新率</string>
+    <string name="show_navbar_hint_title">導覽列提示</string>
+    <string name="show_navbar_hint_summary">在螢幕底部顯示導航列提示欄</string>
+    <string name="app_notification_sound_timeout_title">通知音效之間的最短時間</string>
+    <string name="app_notification_sound_timeout_summary_template">允許音效或震動每一次不超過 <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">無限制</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 秒</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 秒</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 分鐘</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 分鐘</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 分鐘</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 分鐘</string>
+    <string name="auto_brightness_one_shot_title">使用自動調整亮度一次</string>
+    <string name="auto_brightness_one_shot_summary">將在開啟螢幕時自動調整螢幕亮度一次</string>
+    <string name="data_usage_app_restrict_all">允許網路存取</string>
+    <string name="data_usage_app_restrict_all_summary">啟用網路用量</string>
+    <string name="data_usage_app_restrict_mobile">行動數據</string>
+    <string name="data_usage_app_restrict_mobile_summary">啟用行動網路流量統計</string>
+    <string name="data_usage_app_restrict_vpn">VPN 數據</string>
+    <string name="data_usage_app_restrict_vpn_summary">啟用 VPN 數據用量</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 數據</string>
+    <string name="data_usage_app_restrict_wifi_summary">啟用 Wi\u2011Fi 數據</string>
+    <string name="unlock_scramble_pin_layout_title">亂序佈局</string>
+    <string name="unlock_scramble_pin_layout_summary">解鎖裝置時使用亂序 PIN 碼佈局</string>
+    <string name="proximity_wake_title">防止意外喚醒</string>
+    <string name="proximity_wake_summary">喚醒螢幕前檢查接近感應器</string>
+    <string name="touchscreen_gesture_settings_title">觸控螢幕手勢</string>
+    <string name="touchscreen_gesture_settings_summary">執行各種觸控螢幕手勢以進行快速動作</string>
+    <string name="touchscreen_hovering_title">懸浮操作</string>
+    <string name="touchscreen_hovering_summary">允許您把手指懸停在螢幕上作為瀏覽器、遠程桌面等的滑鼠</string>
+    <string name="wake_when_plugged_or_unplugged_title">接上或拔除電源時喚醒</string>
+    <string name="wake_when_plugged_or_unplugged_summary">接上或拔除電源時開啟螢幕</string>
+    <string name="fast_charging_title">快速充電</string>
+    <string name="fast_charging_summary">停用以減少裝置在充電時產生的熱量或延長電池的使用壽命</string>
+</resources>
diff --git a/res/values-zu/cm_strings.xml b/res/values-zu/cm_strings.xml
new file mode 100644
index 0000000..b4a9a4b
--- /dev/null
+++ b/res/values-zu/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="peak_refresh_rate_summary_custom">Iphakamisa ngokuzenzakalela isilinganiso sokuvuselela kusukela kokungu-60 ukuya kokungu-%1$d Hz kokunye okuqukethwe. Ikhuphula ukusetshenziswa kwebhethri.</string>
+</resources>
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
new file mode 100644
index 0000000..32c93ce
--- /dev/null
+++ b/res/values/cm_arrays.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2016 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <!-- Per-app notification settings: Timeout period in which the app notifications are muted. These are shown in a list dialog. -->
+    <string-array name="app_notification_sound_timeout_entries" translatable="false">
+        <item>@string/app_notification_sound_timeout_value_none</item>
+        <item>@string/app_notification_sound_timeout_value_10_seconds</item>
+        <item>@string/app_notification_sound_timeout_value_30_seconds</item>
+        <item>@string/app_notification_sound_timeout_value_1_minute</item>
+        <item>@string/app_notification_sound_timeout_value_5_minutes</item>
+        <item>@string/app_notification_sound_timeout_value_15_minutes</item>
+        <item>@string/app_notification_sound_timeout_value_30_minutes</item>
+    </string-array>
+
+    <!-- Do not translate. -->
+    <string-array name="app_notification_sound_timeout_values" translatable="false">
+        <item>0</item>
+        <item>10000</item>
+        <item>30000</item>
+        <item>60000</item>
+        <item>300000</item>
+        <item>900000</item>
+        <item>1800000</item>
+    </string-array>
+</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
new file mode 100644
index 0000000..9cda169
--- /dev/null
+++ b/res/values/cm_strings.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2017-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Private DNS -->
+    <string name="private_dns_mode_cloudflare" translatable="false">Cloudflare DNS</string>
+    <!-- Alternative: 1dot1dot1dot1.cloudflare-dns.com -->
+    <string name="private_dns_hostname_cloudflare" translatable="false">one.one.one.one</string>
+
+    <!-- Advanced keyboard settings -->
+    <string name="keyboard_extras_title">Extras</string>
+    <string name="advanced_keyboard_settings_title">Advanced settings</string>
+
+    <!-- Android debugging as root -->
+    <string name="adb_enable_root">Rooted debugging</string>
+    <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+
+    <!-- Backup Transport selection settings menu and activity title -->
+    <string name="backup_transport_setting_label">Change backup provider</string>
+    <string name="backup_transport_title">Select backup provider</string>
+
+    <!-- Black theme for dark mode -->
+    <string name="berry_black_theme_title">Pure black</string>
+    <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+
+    <!-- Device Info screen. LineageOS legal. -->
+    <string name="lineagelicense_title">LineageOS legal</string>
+
+    <!-- String for removal of sensitive info on about, depending on tap -->
+    <string name="device_info_protected_single_press">Tap to show info</string>
+
+    <!-- [CHAR LIMIT=NONE] Device Info screen. Countdown for user taps to enable development settings -->
+    <plurals name="show_dev_countdown_cm">
+        <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+        <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+    </plurals>
+    <!-- [CHAR LIMIT=NONE] Device Info screen. Confirmation that developer settings are enabled -->
+    <string name="show_dev_on_cm">You have enabled development settings!</string>
+    <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
+    <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+
+    <!-- Display settings screen, peak refresh rate settings summary [CHAR LIMIT=NONE] -->
+    <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+
+    <!-- Double tap to sleep on status bar or lockscreen -->
+    <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+    <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+
+    <!-- High touch polling rate -->
+    <string name="high_touch_polling_rate_title">High touch polling rate</string>
+    <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+
+    <!-- Heads-up -->
+    <string name="heads_up_notifications_enabled_title">Heads-up</string>
+    <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+
+    <!-- High touch sensitivity -->
+    <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+    <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+
+    <!-- Hotspot extras -->
+    <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+    <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+
+    <!-- Increasing ring tone volume -->
+    <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+    <string name="increasing_ring_min_volume_title">Start volume</string>
+    <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+
+    <!-- Lock screen cover art -->
+    <string name="lockscreen_media_art_title">Display media cover art</string>
+
+    <!-- Lock screen pattern size -->
+    <string name="lock_pattern_size_3" translatable="false">3 \u00d7 3</string>
+    <string name="lock_pattern_size_4" translatable="false">4 \u00d7 4</string>
+    <string name="lock_pattern_size_5" translatable="false">5 \u00d7 5</string>
+    <string name="lock_pattern_size_6" translatable="false">6 \u00d7 6</string>
+    <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+    <!-- Whether a visible red line will be drawn after the user has drawn the unlock pattern incorrectly -->
+    <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+    <!-- Whether the dots will be drawn when using the lockscreen pattern -->
+    <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+
+    <!-- Max refresh rate -->
+    <string name="max_refresh_rate_title">Peak refresh rate</string>
+
+    <!-- Min refresh rate -->
+    <string name="min_refresh_rate_title">Minimum refresh rate</string>
+
+    <!-- Message shown in fingerprint enrollment dialog to locate the sensor -->
+    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+
+    <!-- Message shown when user touches the icon on the screen, instead of the real fingerprint sensor -->
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+
+    <!-- Navigation bar hint -->
+    <string name="show_navbar_hint_title">Navigation hint</string>
+    <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+
+    <!-- Notification sound timeout -->
+    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+    <string name="app_notification_sound_timeout_value_none">No restriction</string>
+    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+
+    <!-- One shot automatic brightness -->
+    <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+    <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+
+    <!-- Per-app data restrictions -->
+    <string name="data_usage_app_restrict_all">Allow network access</string>
+    <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+    <string name="data_usage_app_restrict_mobile">Mobile data</string>
+    <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+    <string name="data_usage_app_restrict_vpn">VPN data</string>
+    <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+    <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+    <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+
+    <!-- PIN scramble -->
+    <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+    <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+
+    <!-- Proximity wake -->
+    <string name="proximity_wake_title">Prevent accidental wake-up</string>
+    <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+
+    <!-- Touchscreen gesture settings -->
+    <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+    <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+
+    <!-- Touchscreen hovering -->
+    <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+    <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+
+    <!-- Wake on plug -->
+    <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+    <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+
+    <!-- FastCharge feature -->
+    <string name="fast_charging_title">Fast charging</string>
+    <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+
+    <!-- Preference and settings suggestion title text for screen off UDFPS (phone) [CHAR LIMIT=60]-->
+    <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+    <!-- Preference and settings suggestion title text for screen off UDFPS  (tablet) [CHAR LIMIT=60]-->
+    <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+    <!-- Preference and settings suggestion title text for screen off UDFPS  (device) [CHAR LIMIT=60]-->
+    <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+    <!-- Summary text for screen off UDFPS [CHAR LIMIT=NONE]-->
+    <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+
+    <!-- Warning message for the sd card setup -->
+    <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+
+    <!-- Location settings screen, setting summary for Assisted GPS switch -->
+    <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 7444b57..2e53a2f 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -689,4 +689,7 @@
 
     <item name="a11y_extra_dim_banner" type="raw" product="default">@raw/extra_dim_banner</item>
     <item name="a11y_extra_dim_banner" type="raw" product="tablet">@raw/extra_dim_banner_tablet</item>
+
+    <!-- Whether the given language capitalizes nouns -->
+    <bool name="language_capitalizes_nouns">false</bool>
 </resources>
diff --git a/res/values/lineage_config.xml b/res/values/lineage_config.xml
new file mode 100644
index 0000000..3fc6576
--- /dev/null
+++ b/res/values/lineage_config.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2020-2023 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <!-- Indicates whether device has a front facing fingerprint sensor (not udfps). -->
+    <bool name="config_is_front_facing_fps" translatable="false">false</bool>
+
+    <!-- Indicates whether device has a side mounted fingerprint sensor,
+         but a dedicated one, i.e. not embedded in the power button. -->
+    <bool name="config_is_side_fps" translatable="false">false</bool>
+
+    <string-array name="config_ignored_backup_transports" translatable="false">
+        <item>com.android.localtransport/.LocalTransport</item>
+    </string-array>
+
+    <!-- Whether to show peak refresh rate in display settings -->
+    <bool name="config_show_peak_refresh_rate_switch">false</bool>
+
+    <!-- Whether to show min refresh rate in display settings -->
+    <bool name="config_show_min_refresh_rate_switch">false</bool>
+
+    <!-- Max network scan search time in seconds -->
+    <integer name="config_network_scan_helper_max_search_time_sec">300</integer>
+</resources>
diff --git a/res/values/lineage_dimens.xml b/res/values/lineage_dimens.xml
new file mode 100644
index 0000000..d9c2d7d
--- /dev/null
+++ b/res/values/lineage_dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2019 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<resources>
+    <!-- Fingerprint -->
+    <dimen name="fingerprint_find_sensor_padding_top">16dp</dimen>
+</resources>
diff --git a/res/values/lineage_styles.xml b/res/values/lineage_styles.xml
new file mode 100644
index 0000000..1ce2e23
--- /dev/null
+++ b/res/values/lineage_styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2018 The LineageOS Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources>
+    <style name="LockPatternSizeHeaderStyle" parent="android:style/TextAppearance.Material.Subhead">
+        <item name="android:paddingTop">16dp</item>
+        <item name="android:textColor">@color/primary_dark_material_light</item>
+        <item name="android:lineSpacingMultiplier">1.2</item>
+    </style>
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ccf4af7..044d70e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4227,23 +4227,23 @@
     <!-- Button title to factory data reset the entire device. The "(factory reset)" part is optional for translation. [CHAR LIMIT=30 BACKUP_MESSAGE_ID=3531267871084279512]-->
     <string name="main_clear_short_title">Erase all data (factory reset)</string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc" product="tablet">"This will erase all data from your tablet\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li>"</string>
+    <string name="main_clear_desc" product="tablet">This will erase all data from your tablet\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li></string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc" product="default">"This will erase all data from your phone\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li>"</string>
+    <string name="main_clear_desc" product="default">This will erase all data from your phone\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li></string>
     <!-- SD card & phone storage settings screen, instructions and list of current accounts.  The list of accounts follows this text[CHAR LIMIT=NONE] -->
-    <string name="main_clear_accounts" product="default">"\n\nYou are currently signed into the following accounts:\n"</string>
+    <string name="main_clear_accounts" product="default">\n\nYou are currently signed into the following accounts:\n</string>
     <!-- SD card & phone storage settings screen, notification if other users are present on the device [CHAR LIMIT=NONE] -->
-    <string name="main_clear_other_users_present" product="default">"\n\nThere are other users present on this device.\n"</string>
+    <string name="main_clear_other_users_present" product="default">\n\nThere are other users present on this device.\n</string>
     <!-- SD card & phone storage settings screen, list of items in user data storage (USB storage or SD card) that will be erased during this operation [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_also_erases_external">"<li>Music</li>\n<li>Photos</li>\n<li>Other user data</li>"</string>
+    <string name="main_clear_desc_also_erases_external"><li>Music</li>\n<li>Photos</li>\n<li>Other user data</li></string>
     <!-- SD card & phone storage settings screen, list of items on an eSIM (embedded SIM) that will be erased during this operation [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_also_erases_esim">"<li>eSIMs</li>"</string>
+    <string name="main_clear_desc_also_erases_esim"><li>eSIMs</li></string>
     <!-- SD card & phone storage settings screen, notification if there are eSIM (embedded SIM) profiles present that the user's mobile service plan will not be canceled [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_no_cancel_mobile_plan">"\n\nThis will not cancel your mobile service plan.</string>
+    <string name="main_clear_desc_no_cancel_mobile_plan">\n\nThis will not cancel your mobile service plan.</string>
     <!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_erase_external_storage" product="nosdcard">"\n\nTo clear music, pictures, and other user data, the <b>USB storage</b> needs to be erased."</string>
+    <string name="main_clear_desc_erase_external_storage" product="nosdcard">\n\nTo clear music, pictures, and other user data, the <b>USB storage</b> needs to be erased.</string>
     <!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
-    <string name="main_clear_desc_erase_external_storage" product="default">"\n\nTo clear music, pictures, and other user data, the <b>SD card</b> needs to be erased."</string>
+    <string name="main_clear_desc_erase_external_storage" product="default">\n\nTo clear music, pictures, and other user data, the <b>SD card</b> needs to be erased.</string>
     <!-- SD card & phone storage settings screen, label for check box to erase USB storage [CHAR LIMIT=30] -->
     <string name="erase_external_storage" product="nosdcard">Erase USB storage</string>
     <!-- SD card & phone storage settings screen, label for check box to erase SD card [CHAR LIMIT=30] -->
diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml
index d30ceaa..a36ab66 100644
--- a/res/xml/about_legal.xml
+++ b/res/xml/about_legal.xml
@@ -35,6 +35,12 @@
         android:title="@string/license_title"
         settings:controller="com.android.settings.deviceinfo.legal.LicensePreferenceController" />
 
+    <!-- LineageOS License information -->
+    <Preference
+        android:key="lineage_license"
+        android:title="@string/lineagelicense_title"
+        settings:controller="com.android.settings.deviceinfo.legal.LineageLicensePreferenceController" />
+
     <!-- Terms and conditions -->
     <Preference
         android:key="terms"
diff --git a/res/xml/app_data_usage.xml b/res/xml/app_data_usage.xml
index aacc1f6..3a2cb43 100644
--- a/res/xml/app_data_usage.xml
+++ b/res/xml/app_data_usage.xml
@@ -59,6 +59,21 @@
             android:title="@string/data_usage_app_settings" />
 
         <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_all"
+            android:title="@string/data_usage_app_restrict_all"
+            android:summary="@string/data_usage_app_restrict_all_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_wifi"
+            android:title="@string/data_usage_app_restrict_wifi"
+            android:summary="@string/data_usage_app_restrict_wifi_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_cellular"
+            android:title="@string/data_usage_app_restrict_mobile"
+            android:summary="@string/data_usage_app_restrict_mobile_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
             android:key="restrict_background"
             android:title="@string/data_usage_app_restrict_background"
             android:summary="@string/data_usage_app_restrict_background_summary"
@@ -66,6 +81,11 @@
             settings:restrictedSwitchSummary="@string/disabled_by_admin" />
 
         <com.android.settingslib.RestrictedSwitchPreference
+            android:key="restrict_vpn"
+            android:title="@string/data_usage_app_restrict_vpn"
+            android:summary="@string/data_usage_app_restrict_vpn_summary" />
+
+        <com.android.settingslib.RestrictedSwitchPreference
             android:key="unrestricted_data_saver"
             android:title="@string/unrestricted_app_title"
             android:summary="@string/unrestricted_app_summary"
diff --git a/res/xml/app_info_settings.xml b/res/xml/app_info_settings.xml
index 2bb05d0..b155edc 100644
--- a/res/xml/app_info_settings.xml
+++ b/res/xml/app_info_settings.xml
@@ -207,9 +207,16 @@
     <Preference
         android:key="app_version"
         android:selectable="false"
-        android:order="9999"
+        android:order="9998"
         settings:controller="com.android.settings.applications.appinfo.AppVersionPreferenceController"
         settings:allowDividerAbove="true"
         settings:enableCopying="true"/>
 
+    <Preference
+        android:key="app_package_name"
+        android:selectable="false"
+        android:order="9999"
+        settings:controller="com.android.settings.applications.appinfo.AppPackageNamePreferenceController"
+        settings:enableCopying="true"/>
+
 </PreferenceScreen>
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index 5b744fb..b2df89c 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -86,6 +86,14 @@
         android:title="@string/app_notification_override_dnd_title"
         android:summary="@string/app_notification_override_dnd_summary"/>
 
+    <com.android.settings.RestrictedListPreference
+        android:key="sound_timeout"
+        android:title="@string/app_notification_sound_timeout_title"
+        android:entries="@array/app_notification_sound_timeout_entries"
+        android:entryValues="@array/app_notification_sound_timeout_values"
+        android:order="1003"
+        android:persistent="false" />
+
         <Preference
             android:key="app_link"
             android:order="1003"
diff --git a/res/xml/auto_brightness_detail.xml b/res/xml/auto_brightness_detail.xml
index 0584d77..b31808e 100644
--- a/res/xml/auto_brightness_detail.xml
+++ b/res/xml/auto_brightness_detail.xml
@@ -32,6 +32,17 @@
         settings:userRestriction="no_config_brightness"
         settings:controller="com.android.settings.display.AutoBrightnessDetailPreferenceController"/>
 
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="auto_brightness_one_shot"
+        android:title="@string/auto_brightness_one_shot_title"
+        android:summary="@string/auto_brightness_one_shot_summary"
+        android:dependency="auto_brightness"
+        settings:keywords="@string/keywords_display_auto_brightness"
+        settings:controller="com.android.settings.display.AutoBrightnessOneShotPreferenceController"
+        settings:useAdminDisabledSummary="true"
+        settings:userRestriction="no_config_brightness"
+        settings:allowDividerAbove="true" />
+
     <com.android.settingslib.widget.FooterPreference
         android:key="auto_brightness_footer"
         android:title="@string/auto_brightness_description"
diff --git a/res/xml/backup_transport_settings.xml b/res/xml/backup_transport_settings.xml
new file mode 100644
index 0000000..cc8cc9a
--- /dev/null
+++ b/res/xml/backup_transport_settings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 The Calyx Institute
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/backup_transport_title">
+
+    <!-- content gets filled programmatically -->
+
+</PreferenceScreen>
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index 27d5760..a5d5831 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -169,5 +169,18 @@
             android:title="@string/notification_assistant_title"
             android:summary="@string/notification_assistant_summary"
             settings:controller="com.android.settings.notification.NotificationAssistantPreferenceController"/>
+
+        <!-- Heads up -->
+        <lineageos.preference.GlobalSettingSwitchPreference
+            android:key="heads_up_notifications_enabled"
+            android:order="24"
+            android:title="@string/heads_up_notifications_enabled_title"
+            android:summary="@string/heads_up_notifications_enabled_summary" />
+
+        <!-- Notification lights -->
+        <lineageos.preference.LineagePartsPreference
+            android:key="notification_lights"
+            settings:requiresConfig="@*android:bool/config_intrusiveNotificationLed"
+            settings:replacesKey="notification_pulse" />
     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/dark_mode_settings.xml b/res/xml/dark_mode_settings.xml
index 7f13659..5ad39a2 100644
--- a/res/xml/dark_mode_settings.xml
+++ b/res/xml/dark_mode_settings.xml
@@ -62,4 +62,10 @@
         settings:searchable="false"
         settings:controller="com.android.settings.display.darkmode.DarkModeCustomBedtimePreferenceController" />
 
+    <lineageos.preference.LineageSecureSettingSwitchPreference
+        android:key="berry_black_theme"
+        android:dependency="dark_ui_activated"
+        android:title="@string/berry_black_theme_title"
+        android:summary="@string/berry_black_theme_summary"
+        android:defaultValue="false" />
 </PreferenceScreen>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 19c1209..160d81d 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -137,6 +137,13 @@
             android:title="@string/enable_adb"
             android:summary="@string/enable_adb_summary" />
 
+        <SwitchPreference
+            android:key="enable_adb_root"
+            android:title="@string/adb_enable_root"
+            android:summary="@string/adb_enable_summary_root"
+            android:dependency="enable_adb"
+            android:persistent="false" />
+
         <Preference android:key="clear_adb_keys"
                     android:title="@string/clear_adb_keys" />
 
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index ad5236e..43f4bc4 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -86,6 +86,10 @@
             settings:controller="com.android.settings.display.NightDisplayPreferenceController"
             settings:keywords="@string/keywords_display_night_display"/>
 
+        <lineageos.preference.LineagePartsPreference
+            android:key="livedisplay"
+            settings:requiresConfig="@*lineageos.platform:bool/config_enableLiveDisplay" />
+
         <Preference
             android:key="color_mode"
             android:title="@string/color_mode_title"
@@ -107,16 +111,10 @@
             settings:keywords="@string/keywords_auto_rotate"
             settings:controller="com.android.settings.display.AutoRotatePreferenceController"/>
 
-        <!--
-            Auto-rotation preference that will be shown when device state based auto-rotation
-            settings are available.
-          -->
-        <Preference
-            android:key="device_state_auto_rotate"
-            android:title="@string/accelerometer_title"
-            android:fragment="com.android.settings.display.DeviceStateAutoRotateDetailsFragment"
-            settings:keywords="@string/keywords_auto_rotate"
-            settings:controller="com.android.settings.display.DeviceStateAutoRotateOverviewController"/>
+        <lineageos.preference.LineagePartsPreference
+            android:key="rotation"
+            settings:replacesKey="auto_rotate"
+            settings:requiresFeature="android.hardware.sensor.accelerometer" />
 
         <Preference
             android:key="screen_resolution"
@@ -131,10 +129,21 @@
             android:summary="@string/display_white_balance_summary"
             settings:controller="com.android.settings.display.DisplayWhiteBalancePreferenceController"/>
 
+        <ListPreference
+            android:key="max_refresh_rate"
+            android:title="@string/max_refresh_rate_title"
+            android:summary="@string/summary_placeholder"
+            settings:controller="com.android.settings.display.PeakRefreshRateListPreferenceController" />
+
+        <ListPreference
+            android:key="min_refresh_rate"
+            android:title="@string/min_refresh_rate_title"
+            android:summary="@string/summary_placeholder"
+            settings:controller="com.android.settings.display.MinRefreshRatePreferenceController" />
+
         <SwitchPreference
             android:key="peak_refresh_rate"
             android:title="@string/peak_refresh_rate_title"
-            android:summary="@string/peak_refresh_rate_summary"
             settings:controller="com.android.settings.display.PeakRefreshRatePreferenceController"/>
 
         <SwitchPreference
@@ -142,6 +151,10 @@
             android:title="@string/show_operator_name_title"
             android:summary="@string/show_operator_name_summary"/>
 
+        <lineageos.preference.LineagePartsPreference
+            android:key="long_screen_settings"
+            settings:requiresConfig="@*lineageos.platform:bool/config_haveHigherAspectRatioScreen" />
+
         <Preference
             android:key="screensaver"
             android:title="@string/screensaver_settings_title"
@@ -163,6 +176,41 @@
             android:title="@string/tap_to_wake"
             android:summary="@string/tap_to_wake_summary"/>
 
+        <!-- Prevent accidental wake-up -->
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="proximity_on_wake"
+            android:title="@string/proximity_wake_title"
+            android:summary="@string/proximity_wake_summary"
+            android:defaultValue="@*lineageos.platform:bool/config_proximityCheckOnWakeEnabledByDefault"
+            settings:requiresConfig="@*lineageos.platform:bool/config_proximityCheckOnWake" />
+
+        <!-- Double tap to sleep -->
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="double_tap_sleep_gesture"
+            android:title="@string/status_bar_double_tap_to_sleep_title"
+            android:summary="@string/status_bar_double_tap_to_sleep_summary"
+            android:defaultValue="true" />
+
+        <lineageos.preference.LineageGlobalSettingSwitchPreference
+            android:key="wake_when_plugged_or_unplugged"
+            android:title="@string/wake_when_plugged_or_unplugged_title"
+            android:summary="@string/wake_when_plugged_or_unplugged_summary"
+            android:defaultValue="@*android:bool/config_unplugTurnsOnScreen" />
+
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="high_touch_polling_rate_enable"
+            android:title="@string/high_touch_polling_rate_title"
+            android:summary="@string/high_touch_polling_rate_summary"
+            android:defaultValue="false"
+            settings:requiresFeature="lineagehardware:FEATURE_HIGH_TOUCH_POLLING_RATE" />
+
+        <lineageos.preference.LineageSystemSettingSwitchPreference
+            android:key="high_touch_sensitivity_enable"
+            android:title="@string/high_touch_sensitivity_title"
+            android:summary="@string/high_touch_sensitivity_summary"
+            android:defaultValue="false"
+            settings:requiresFeature="lineagehardware:FEATURE_HIGH_TOUCH_SENSITIVITY" />
+
         <ListPreference
             android:key="theme"
             android:title="@string/device_theme"
diff --git a/res/xml/double_tap_power_settings.xml b/res/xml/double_tap_power_settings.xml
index f4d7607..37a5028 100644
--- a/res/xml/double_tap_power_settings.xml
+++ b/res/xml/double_tap_power_settings.xml
@@ -24,7 +24,7 @@
     <com.android.settingslib.widget.IllustrationPreference
         android:key="gesture_double_tap_power_video"
         settings:searchable="false"
-        app:lottie_rawRes="@drawable/quickly_open_camera"/>
+        app:lottie_rawRes="@raw/lottie_quickly_open_camera"/>
 
     <SwitchPreference
         android:key="gesture_double_tap_power"
diff --git a/res/xml/firmware_version.xml b/res/xml/firmware_version.xml
index 41f7733..4eb25fd 100644
--- a/res/xml/firmware_version.xml
+++ b/res/xml/firmware_version.xml
@@ -30,6 +30,14 @@
         settings:searchable="false"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionDetailPreferenceController"/>
 
+    <!-- Lineage version -->
+    <Preference
+        android:key="lineage_version"
+        android:title="@*lineageos.platform:string/lineage_version"
+        android:summary="@string/summary_placeholder"
+        settings:enableCopying="true"
+        settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVersionDetailPreferenceController"/>
+
     <!-- Security patch -->
     <Preference
         android:key="security_key"
@@ -37,13 +45,23 @@
         settings:enableCopying="true"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.SecurityPatchLevelPreferenceController"/>
 
+    <!-- Vendor security patch -->
+    <Preference
+        android:key="vendor_security_key"
+        android:title="@*lineageos.platform:string/lineage_vendor_security_patch"
+        android:selectable="false"
+        settings:enableCopying="true"
+        settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVendorSecurityPatchLevelPreferenceController"/>
+
     <!-- Mainline module version -->
+    <!--
     <Preference
         android:key="module_version"
         android:title="@string/module_version"
         android:summary="@string/summary_placeholder"
         settings:enableCopying="true"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController"/>
+    -->
 
     <!-- Baseband -->
     <Preference
@@ -63,6 +81,15 @@
         settings:enableCopying="true"
         settings:controller="com.android.settings.deviceinfo.firmwareversion.KernelVersionPreferenceController"/>
 
+    <!-- Build date -->
+    <Preference
+        android:key="os_build_date"
+        android:title="@*lineageos.platform:string/build_date"
+        android:summary="@string/summary_placeholder"
+        android:selectable="false"
+        settings:enableCopying="true"
+        settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageBuildDatePreferenceController"/>
+
     <!-- Build -->
     <Preference
         android:key="os_build_number"
diff --git a/res/xml/gesture_navigation_settings.xml b/res/xml/gesture_navigation_settings.xml
index 022583c..a3ce307 100644
--- a/res/xml/gesture_navigation_settings.xml
+++ b/res/xml/gesture_navigation_settings.xml
@@ -23,6 +23,13 @@
     android:title="@string/gesture_settings_activity_title"
     settings:keywords="@string/keywords_gesture_navigation_settings">
 
+    <lineageos.preference.LineageSystemSettingSwitchPreference
+        android:key="navigation_bar_hint"
+        android:title="@string/show_navbar_hint_title"
+        android:summary="@string/show_navbar_hint_summary"
+        android:defaultValue="true"
+        settings:requiresPackage="org.lineageos.overlay.customization.navbar.nohint" />
+
     <PreferenceCategory
         android:key="assistant_gesture_category"
         android:persistent="false"
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index 4881360..10ed22d 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -20,6 +20,19 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/gesture_preference_title">
 
+    <lineageos.preference.LineagePartsPreference
+        android:key="touchscreen_gesture_settings"
+        settings:requiresFeature="lineagehardware:FEATURE_TOUCHSCREEN_GESTURES" />
+
+    <lineageos.preference.RemotePreference
+            android:key="device_touchscreen_gesture_settings"
+            android:title="@string/touchscreen_gesture_settings_title"
+            android:summary="@string/touchscreen_gesture_settings_summary"
+            settings:replacesKey="touchscreen_gesture_settings"
+            settings:requiresFeature="lineagehardware:FEATURE_TOUCHSCREEN_GESTURES">
+        <intent android:action="org.lineageos.settings.device.GESTURE_SETTINGS" />
+    </lineageos.preference.RemotePreference>
+
     <Preference
         android:key="gesture_assist_input_summary"
         android:title="@string/assist_gesture_title"
@@ -82,6 +95,13 @@
         settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
 
     <Preference
+        android:key="gesture_screen_off_udfps_input_summary"
+        android:title="@string/ambient_display_screen_off_udfps_title"
+        android:fragment="com.android.settings.gestures.ScreenOffUdfpsSettings"
+        settings:searchable="false"
+        settings:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController" />
+
+    <Preference
         android:key="gesture_power_menu_summary"
         android:title="@string/power_menu_setting_name"
         android:fragment="com.android.settings.gestures.PowerMenuSettings"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index 64b5003..415edb7 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -105,6 +105,14 @@
             android:key="pointer_speed"
             android:title="@string/pointer_speed"
             android:dialogTitle="@string/pointer_speed" />
+
+        <lineageos.preference.LineageSecureSettingSwitchPreference
+            android:key="feature_touch_hovering"
+            android:title="@string/touchscreen_hovering_title"
+            android:summary="@string/touchscreen_hovering_summary"
+            android:defaultValue="false"
+            settings:requiresFeature="lineagehardware:FEATURE_TOUCH_HOVERING" />
+
     </PreferenceCategory>
 
     <SwitchPreference
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index fe87efd..477bbe2 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -35,6 +35,12 @@
         settings:controller="com.android.settings.location.RecentLocationAccessSeeAllButtonPreferenceController"
         settings:searchable="false"/>
 
+    <SwitchPreference
+        android:key="assisted_gps"
+        android:title="@string/assisted_gps"
+        android:summary="@string/assisted_gps_summary"
+        settings:controller="com.android.settings.location.AgpsPreferenceController"/>
+
     <PreferenceCategory
         android:key="location_advanced_settings"
         android:layout="@layout/preference_category_no_label">
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 9b80410..7eeffee 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -23,10 +23,9 @@
 
     <com.android.settingslib.widget.LayoutPreference
         android:key="my_device_info_header"
-        android:order="0"
+        android:order="-1"
         android:layout="@layout/settings_entity_header"
-        android:selectable="false"
-        settings:isPreferenceVisible="false"/>
+        android:selectable="false"/>
 
     <PreferenceCategory
         android:key="basic_info_category"
@@ -57,7 +56,6 @@
             android:order="3"
             android:title="@string/status_number"
             android:summary="@string/summary_placeholder"
-            android:selectable="false"
             settings:isPreferenceVisible="@bool/config_show_sim_info"
             settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
             settings:enableCopying="true"/>
@@ -133,6 +131,15 @@
             android:summary="@string/summary_placeholder"
             android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
             settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
+
+        <!-- Lineage version -->
+        <Preference
+            android:key="lineage_os_version"
+            android:order="43"
+            android:title="@*lineageos.platform:string/lineage_version"
+            android:summary="@string/summary_placeholder"
+            settings:enableCopying="true"
+            settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVersionDetailPreferenceController"/>
     </PreferenceCategory>
 
     <PreferenceCategory
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
index 96946a9..f00f0f8 100644
--- a/res/xml/physical_keyboard_settings.xml
+++ b/res/xml/physical_keyboard_settings.xml
@@ -15,6 +15,7 @@
 -->
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/physical_keyboard_title">
     <!-- Additional preference screens are inserted here programmatically
          with low order values to set the key map of each attached keyboard. -->
@@ -32,4 +33,20 @@
             android:title="@string/keyboard_shortcuts_helper"
             android:summary="@string/keyboard_shortcuts_helper_summary" />
     </PreferenceCategory>
+
+    <!-- Device-specific keyboard settings. -->
+    <PreferenceCategory
+        android:key="keyboard_extras_category"
+        android:title="@string/keyboard_extras_title" >
+
+        <lineageos.preference.RemotePreference
+            android:key="advanced_keyboard_settings"
+            android:title="@string/advanced_keyboard_settings_title"
+            settings:requiresAction="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS">
+            <intent
+                android:action="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS" />
+        </lineageos.preference.RemotePreference>
+
+    </PreferenceCategory>
+
 </PreferenceScreen>
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 9e86bf5..a02851d 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -58,12 +58,29 @@
         settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController"
         settings:keywords="@string/keywords_battery_adaptive_preferences" />
 
+    <!-- Charging control -->
+    <lineageos.preference.LineagePartsPreference
+        android:key="charging_control"
+        settings:requiresService="lineagehealth" />
+
+    <!-- Battery light -->
+    <lineageos.preference.LineagePartsPreference
+        android:key="battery_lights"
+        settings:requiresConfig="@*lineageos.platform:integer/config_deviceLightCapabilities"
+        settings:requiresConfigMask="64" />
+
     <SwitchPreference
         android:key="battery_percentage"
         android:title="@string/battery_percentage"
         android:summary="@string/battery_percentage_description"
         settings:controller="com.android.settings.display.BatteryPercentagePreferenceController" />
 
+    <SwitchPreference
+        android:key="fast_charging"
+        android:title="@string/fast_charging_title"
+        android:summary="@string/fast_charging_summary"
+        settings:controller="com.android.settings.fuelgauge.FastChargingPreferenceController"/>
+
     <com.android.settingslib.widget.FooterPreference
         android:key="power_usage_footer"
         android:title="@string/battery_footer_summary"
diff --git a/res/xml/screen_lock_settings.xml b/res/xml/screen_lock_settings.xml
index 930120e..4deb8be 100644
--- a/res/xml/screen_lock_settings.xml
+++ b/res/xml/screen_lock_settings.xml
@@ -27,6 +27,14 @@
         android:key="visiblepattern"
         android:title="@string/lockpattern_settings_enable_visible_pattern_title" />
 
+    <SwitchPreference
+        android:key="visible_error_pattern"
+        android:title="@string/lockpattern_settings_enable_error_path_title"/>
+
+    <SwitchPreference
+        android:key="visibledots"
+        android:title="@string/lockpattern_settings_enable_dots_title"/>
+
     <!-- available in pin -->
     <SwitchPreference
         android:key="enhancedPinPrivacy"
@@ -46,4 +54,10 @@
         android:key="power_button_instantly_locks"
         android:title="@string/lockpattern_settings_enable_power_button_instantly_locks" />
 
+    <!-- Lineage additions, available in pin/pattern/password/slide -->
+    <SwitchPreference
+        android:key="lockscreen_scramble_pin_layout"
+        android:title="@string/unlock_scramble_pin_layout_title"
+        android:summary="@string/unlock_scramble_pin_layout_summary" />
+
 </PreferenceScreen>
diff --git a/res/xml/screen_off_udfps_settings.xml b/res/xml/screen_off_udfps_settings.xml
new file mode 100644
index 0000000..f723321
--- /dev/null
+++ b/res/xml/screen_off_udfps_settings.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:title="@string/ambient_display_screen_off_udfps_title">
+
+    <SwitchPreference
+        android:key="gesture_screen_off_udfps"
+        android:title="@string/ambient_display_screen_off_udfps_title"
+        android:summary="@string/ambient_display_screen_off_udfps_summary"
+        app:keywords="@string/keywords_gesture"
+        app:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController"
+        app:allowDividerAbove="true" />
+
+</PreferenceScreen>
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 80e8fe6..77a3212 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -45,6 +45,11 @@
             android:title="@string/owner_info_settings_title"
             android:summary="@string/owner_info_settings_summary" />
 
+        <lineageos.preference.LineageSecureSettingSwitchPreference
+            android:key="lockscreen_media_metadata"
+            android:title="@string/lockscreen_media_art_title"
+            android:defaultValue="false" />
+
         <SwitchPreference
             android:key="lockscreen_privacy_wallet_switch"
             android:title="@string/lockscreen_privacy_wallet_setting_toggle"
@@ -116,12 +121,26 @@
             settings:searchable="false"
             settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
 
+        <Preference
+            android:key="gesture_screen_off_udfps_input_summary"
+            android:title="@string/ambient_display_screen_off_udfps_title"
+            android:fragment="com.android.settings.gestures.ScreenOffUdfpsSettings"
+            settings:searchable="false"
+            settings:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController" />
+
         <SwitchPreference
             android:key="ambient_display_notification"
             android:title="@string/doze_title"
             android:summary="@string/doze_summary"
             settings:controller="com.android.settings.display.AmbientDisplayNotificationsPreferenceController" />
 
+        <lineageos.preference.RemotePreference
+            android:key="doze_device_settings"
+            android:title="@string/ambient_display_screen_title"
+            settings:replacesKey="ambient_display_always_on|ambient_display_notification">
+            <intent android:action="org.lineageos.settings.device.DOZE_SETTINGS" />
+        </lineageos.preference.RemotePreference>
+
     </PreferenceCategory>
 
     <!-- Work profile settings are at the bottom with high order value to avoid users thinking that
diff --git a/res/xml/security_settings_pattern_size.xml b/res/xml/security_settings_pattern_size.xml
new file mode 100644
index 0000000..bb0cb23
--- /dev/null
+++ b/res/xml/security_settings_pattern_size.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2012-2013 The CyanogenMod Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_3x3"
+        android:key="lock_pattern_size_3"
+        android:title="@string/lock_pattern_size_3"
+        android:persistent="false"/>
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_4x4"
+        android:key="lock_pattern_size_4"
+        android:title="@string/lock_pattern_size_4"
+        android:persistent="false"/>
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_5x5"
+        android:key="lock_pattern_size_5"
+        android:title="@string/lock_pattern_size_5"
+        android:persistent="false"/>
+
+    <Preference
+        android:icon="@drawable/ic_security_pattern_6x6"
+        android:key="lock_pattern_size_6"
+        android:title="@string/lock_pattern_size_6"
+        android:persistent="false"/>
+
+</PreferenceScreen>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 7181e80..9493bba 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -97,6 +97,21 @@
         android:order="-140"
         settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/>
 
+    <!-- Increasing ring -->
+    <lineageos.preference.LineageSystemSettingSwitchPreference
+        android:key="increasing_ring"
+        android:title="@string/increasing_ring_volume_option_title"
+        android:order="-136"
+        settings:controller="com.android.settings.notification.IncreasingRingPreferenceController" />
+
+    <!-- Increasing ring volume -->
+    <com.android.settings.notification.IncreasingRingVolumePreference
+        android:key="increasing_ring_volume"
+        android:icon="@drawable/ring_notif_increasing"
+        android:dependency="increasing_ring"
+        android:order="-135"
+        settings:controller="com.android.settings.notification.IncreasingRingVolumePreferenceController" />
+
     <!-- TODO(b/174964721): make this a PrimarySwitchPreference -->
     <!-- Interruptions -->
     <com.android.settingslib.RestrictedPreference
@@ -189,6 +204,11 @@
         android:title="@string/charging_sounds_title"
         android:order="-40"/>
 
+    <!-- Custom charging sounds -->
+    <lineageos.preference.LineagePartsPreference
+        android:key="charging_sounds_settings"
+        settings:replacesKey="charging_sounds" />
+
     <!-- Docking sounds -->
     <SwitchPreference
         android:key="docking_sounds"
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index 97ad5fd..23d7df2 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -49,6 +49,12 @@
         android:summary="@string/ethernet_tethering_subtext"
         settings:keywords="@string/keywords_hotspot_tethering" />
 
+    <lineageos.preference.LineageSecureSettingSwitchPreference
+        android:key="tethering_allow_vpn_upstreams"
+        android:title="@string/tethering_allow_vpn_upstreams_title"
+        android:summary="@string/tethering_allow_vpn_upstreams_summary"
+        android:defaultValue="false" />
+
     <com.android.settingslib.widget.FooterPreference
         android:key="disabled_on_data_saver"
         android:title="@string/tether_settings_disabled_on_data_saver"
diff --git a/res/xml/usb_details_fragment.xml b/res/xml/usb_details_fragment.xml
index 96a449b..a3be090 100644
--- a/res/xml/usb_details_fragment.xml
+++ b/res/xml/usb_details_fragment.xml
@@ -17,14 +17,9 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/usb_preference"
+    android:title="@string/usb_pref"
     android:key="usb_details_fragment">
 
-    <com.android.settingslib.widget.LayoutPreference
-        android:key="usb_device_header"
-        android:layout="@layout/settings_entity_header"
-        android:selectable="false"/>
-
     <PreferenceCategory
         android:key="usb_details_data_role"
         android:title="@string/usb_control_title"/>
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 97b9aae..1de331d 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -33,6 +33,8 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexable;
 
+import lineageos.hardware.LineageHardwareManager;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -40,6 +42,10 @@
 public class DisplaySettings extends DashboardFragment {
     private static final String TAG = "DisplaySettings";
 
+    private static final String KEY_HIGH_TOUCH_POLLING_RATE = "high_touch_polling_rate_enable";
+    private static final String KEY_HIGH_TOUCH_SENSITIVITY = "high_touch_sensitivity_enable";
+    private static final String KEY_PROXIMITY_ON_WAKE = "proximity_on_wake";
+
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.DISPLAY;
@@ -87,6 +93,25 @@
             new BaseSearchIndexProvider(R.xml.display_settings) {
 
                 @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
+                    if (!hardware.isSupported(
+                            LineageHardwareManager.FEATURE_HIGH_TOUCH_POLLING_RATE)) {
+                        keys.add(KEY_HIGH_TOUCH_POLLING_RATE);
+                    }
+                    if (!hardware.isSupported(
+                            LineageHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) {
+                        keys.add(KEY_HIGH_TOUCH_SENSITIVITY);
+                    }
+                    if (!context.getResources().getBoolean(
+                            org.lineageos.platform.internal.R.bool.config_proximityCheckOnWake)) {
+                        keys.add(KEY_PROXIMITY_ON_WAKE);
+                    }
+                    return keys;
+                }
+
+                @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
                     return buildPreferenceControllers(context, null);
diff --git a/src/com/android/settings/SetupWizardUtils.java b/src/com/android/settings/SetupWizardUtils.java
index 25e9159..29c4b21 100644
--- a/src/com/android/settings/SetupWizardUtils.java
+++ b/src/com/android/settings/SetupWizardUtils.java
@@ -98,7 +98,7 @@
                 }
             }
         }
-        return R.style.GlifTheme;
+        return R.style.GlifV3Theme;
     }
 
     public static int getTransparentTheme(Context context, Intent intent) {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 58788de..07d2549 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1247,4 +1247,11 @@
         final UserManager userManager = context.getSystemService(UserManager.class);
         return userManager != null && userManager.isSystemUser();
     }
+
+    public static String normalizeTitleCaseIfRequired(Context context, String input) {
+        if (!context.getResources().getBoolean(R.bool.language_capitalizes_nouns)) {
+            return input.toLowerCase();
+        }
+        return input;
+    }
 }
diff --git a/src/com/android/settings/applications/AppPermissionsPreferenceController.java b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
index 4458ea4..68a97d7 100644
--- a/src/com/android/settings/applications/AppPermissionsPreferenceController.java
+++ b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
@@ -23,6 +23,7 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.applications.PermissionsSummaryHelper;
 
@@ -106,12 +107,12 @@
         CharSequence summary;
 
         if (!permissionsToShow.isEmpty()) {
+            final String formatted = Utils.normalizeTitleCaseIfRequired(mContext,
+                    ListFormatter.getInstance().format(permissionsToShow));
             if (isMoreShowed) {
-                summary = mContext.getString(R.string.app_permissions_summary_more,
-                        ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+                summary = mContext.getString(R.string.app_permissions_summary_more, formatted);
             } else {
-                summary = mContext.getString(R.string.app_permissions_summary,
-                        ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+                summary = mContext.getString(R.string.app_permissions_summary, formatted);
             }
         } else {
             summary = mContext.getString(
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index 54455d4..e1e5851 100755
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -178,6 +178,7 @@
         use(AppAllServicesPreferenceController.class).setPackageName(packageName);
         use(AppStoragePreferenceController.class).setParentFragment(this);
         use(AppVersionPreferenceController.class).setParentFragment(this);
+        use(AppPackageNamePreferenceController.class).setParentFragment(this);
         use(InstantAppDomainsPreferenceController.class).setParentFragment(this);
 
         final HibernationSwitchPreferenceController appHibernationSettings =
diff --git a/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java b/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java
new file mode 100644
index 0000000..bd4f12f
--- /dev/null
+++ b/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.appinfo;
+
+import android.content.Context;
+
+public class AppPackageNamePreferenceController extends AppInfoPreferenceControllerBase {
+
+    public AppPackageNamePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return mParent.getPackageInfo().packageName;
+    }
+}
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 2186bc1..e147688 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -767,9 +767,11 @@
         }
         mOptionsMenu.findItem(R.id.advanced).setVisible(false);
 
-        mOptionsMenu.findItem(R.id.sort_order_alpha).setVisible(mListType == LIST_TYPE_STORAGE
+        mOptionsMenu.findItem(R.id.sort_order_alpha).setVisible(
+                (mListType == LIST_TYPE_STORAGE || mListType == LIST_TYPE_MAIN)
                 && mSortOrder != R.id.sort_order_alpha);
-        mOptionsMenu.findItem(R.id.sort_order_size).setVisible(mListType == LIST_TYPE_STORAGE
+        mOptionsMenu.findItem(R.id.sort_order_size).setVisible(
+                (mListType == LIST_TYPE_STORAGE || mListType == LIST_TYPE_MAIN)
                 && mSortOrder != R.id.sort_order_size);
 
         mOptionsMenu.findItem(R.id.show_system).setVisible(!mShowSystem
diff --git a/src/com/android/settings/backup/BackupSettingsFragment.java b/src/com/android/settings/backup/BackupSettingsFragment.java
index 7df19f5..7fcbd63 100644
--- a/src/com/android/settings/backup/BackupSettingsFragment.java
+++ b/src/com/android/settings/backup/BackupSettingsFragment.java
@@ -42,6 +42,13 @@
         super.onCreate(savedInstanceState);
     }
 
+    @Override
+    public void onStart() {
+        super.onStart();
+        // update information when we navigate back from TransportActivity
+        displayResourceTilesToScreen(getPreferenceScreen());
+    }
+
     /**
      * Get the tag string for logging.
      */
diff --git a/src/com/android/settings/backup/BackupSettingsPreferenceController.java b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
index 4e0e3b4..3208ae4 100644
--- a/src/com/android/settings/backup/BackupSettingsPreferenceController.java
+++ b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
@@ -30,24 +30,24 @@
         implements PreferenceControllerMixin {
     private static final String BACKUP_SETTINGS = "backup_settings";
     private static final  String MANUFACTURER_SETTINGS = "manufacturer_backup";
-    private Intent mBackupSettingsIntent;
-    private CharSequence mBackupSettingsTitle;
-    private String mBackupSettingsSummary;
+    private final BackupSettingsHelper settingsHelper;
     private Intent mManufacturerIntent;
     private String mManufacturerLabel;
 
     public BackupSettingsPreferenceController(Context context) {
         super(context);
-        BackupSettingsHelper settingsHelper = new BackupSettingsHelper(context);
-        mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
-        mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
-        mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+        settingsHelper = new BackupSettingsHelper(context);
         mManufacturerIntent = settingsHelper.getIntentProvidedByManufacturer();
         mManufacturerLabel = settingsHelper.getLabelProvidedByManufacturer();
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
+        // we don't get these in the constructor, so we can get updates for them later
+        Intent mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
+        CharSequence mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
+        String mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+
         Preference backupSettings = screen.findPreference(BACKUP_SETTINGS);
         Preference manufacturerSettings = screen.findPreference(MANUFACTURER_SETTINGS);
         backupSettings.setIntent(mBackupSettingsIntent);
diff --git a/src/com/android/settings/backup/transport/Transport.java b/src/com/android/settings/backup/transport/Transport.java
new file mode 100644
index 0000000..d2fd6e0
--- /dev/null
+++ b/src/com/android/settings/backup/transport/Transport.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+class Transport {
+    final String name;
+    final CharSequence dataManagementLabel;
+    final CharSequence destinationString;
+
+    Transport(String name, CharSequence dataManagementLabel, CharSequence destinationString) {
+        this.name = name;
+        this.dataManagementLabel = dataManagementLabel;
+        this.destinationString = destinationString;
+    }
+}
diff --git a/src/com/android/settings/backup/transport/TransportActivity.java b/src/com/android/settings/backup/transport/TransportActivity.java
new file mode 100644
index 0000000..1adcb90
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportActivity.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.os.Bundle;
+import androidx.fragment.app.FragmentActivity;
+
+/**
+ * Activity to allow the user to choose the {@link android.app.backup.BackupTransport}.
+ *
+ * Set {@code config_backup_settings_intent} to {@code settings://com.android.settings.backup.transport} to activate.
+ * Don't forget to also set {@code config_backup_settings_label} or else it won't be shown.
+ */
+public class TransportActivity extends FragmentActivity {
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        getSupportFragmentManager().beginTransaction()
+            .replace(android.R.id.content, new TransportFragment())
+            .commit();
+    }
+
+}
diff --git a/src/com/android/settings/backup/transport/TransportFragment.java b/src/com/android/settings/backup/transport/TransportFragment.java
new file mode 100644
index 0000000..6c6a8ce
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportFragment.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import com.android.settings.R;
+import com.android.settings.backup.transport.TransportPreferenceController.OnTransportChangedListener;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TransportFragment extends DashboardFragment implements OnTransportChangedListener {
+
+    private static final String TAG = "TransportFragment";
+
+    /**
+     * Get the tag string for logging.
+     */
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    /**
+     * Get the res id for static preference xml for this fragment.
+     */
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.backup_transport_settings;
+    }
+
+    /**
+     * Get a list of {@link AbstractPreferenceController} for this fragment.
+     */
+    @Override
+    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+        controllers.add(new TransportPreferenceController(context, this));
+        return controllers;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.BACKUP_SETTINGS;
+    }
+
+    @Override
+    public void onTransportChanged(String transportName) {
+        requireActivity().finish();
+    }
+
+}
diff --git a/src/com/android/settings/backup/transport/TransportHelper.java b/src/com/android/settings/backup/transport/TransportHelper.java
new file mode 100644
index 0000000..1ab5a59
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportHelper.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.app.backup.IBackupManager;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.util.Log;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Helper class for {@link TransportActivity} that interacts with {@link IBackupManager}.
+ */
+class TransportHelper {
+    private static final String TAG = "TransportHelper";
+
+    private final IBackupManager mBackupManager = IBackupManager.Stub.asInterface(
+        ServiceManager.getService(Context.BACKUP_SERVICE));
+
+    private Context mContext;
+
+    TransportHelper(Context context) {
+        mContext = context;
+    }
+
+    List<Transport> getTransports() {
+        String[] backupTransports = getBackupTransports();
+        if (backupTransports == null) return Collections.emptyList();
+        ArrayList<Transport> transports = new ArrayList<>(backupTransports.length);
+        String[] ignoredTransports = mContext.getResources().getStringArray(
+                R.array.config_ignored_backup_transports);
+        for (String name : getBackupTransports()) {
+            boolean ignored = false;
+            for (String ignoredTransport : ignoredTransports) {
+                if (name.equals(ignoredTransport)) ignored = true;
+            }
+            if (ignored) continue;
+            CharSequence label = getLabelFromBackupTransport(name);
+            if (label == null || label.length() == 0) label = name;
+            Transport transport = new Transport(name, label, getSummaryFromBackupTransport(name));
+            transports.add(transport);
+        }
+        return transports;
+    }
+
+    void selectTransport(String name) {
+        try {
+            mBackupManager.selectBackupTransport(name);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error selecting transport: " + name, e);
+        }
+    }
+
+    @Nullable
+    private String[] getBackupTransports() {
+        try {
+            String[] transports = mBackupManager.listAllTransports();
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Received all backup transports: " + Arrays.toString(transports));
+            }
+            return transports;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error getting all backup transports", e);
+        }
+        return null;
+    }
+
+    private CharSequence getLabelFromBackupTransport(String transport) {
+        try {
+            CharSequence label = mBackupManager.getDataManagementLabelForUser(UserHandle.myUserId(), transport);
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Received the backup settings label from " + transport + ": " + label);
+            }
+            return label;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error getting data management label for " + transport, e);
+        }
+        return null;
+    }
+
+    private String getSummaryFromBackupTransport(String transport) {
+        try {
+            String summary = mBackupManager.getDestinationString(transport);
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Received the backup settings summary from " + transport + ": " + summary);
+            }
+            return summary;
+        } catch (RemoteException e) {
+            Log.e(TAG, "Error getting data management summary", e);
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/settings/backup/transport/TransportPreferenceController.java b/src/com/android/settings/backup/transport/TransportPreferenceController.java
new file mode 100644
index 0000000..1dc5a51
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.content.Context;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public class TransportPreferenceController extends AbstractPreferenceController {
+
+    interface OnTransportChangedListener {
+        void onTransportChanged(String transportName);
+    }
+
+    private final OnTransportChangedListener listener;
+    private final TransportHelper transportHelper;
+
+    public TransportPreferenceController(Context context, OnTransportChangedListener listener) {
+        super(context);
+        this.listener = listener;
+        transportHelper = new TransportHelper(context);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        for (Transport transport : transportHelper.getTransports()) {
+            screen.addPreference(getPreferenceForTransport(transport));
+        }
+    }
+
+    private Preference getPreferenceForTransport(Transport transport) {
+        Preference p = new Preference(mContext);
+        p.setTitle(transport.dataManagementLabel);
+        p.setSummary(transport.destinationString);
+        p.setIconSpaceReserved(false);
+        p.setOnPreferenceClickListener(preference -> {
+            transportHelper.selectTransport(transport.name);
+            listener.onTransportChanged(transport.name);
+            return true;
+        });
+        return p;
+    }
+
+    /**
+     * Returns true if preference is available (should be displayed)
+     */
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    /**
+     * Returns the key for this preference.
+     */
+    @Override
+    public String getPreferenceKey() {
+        return null;
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 368564a..2348141 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -1103,10 +1103,19 @@
 
         @Override
         public Dialog onCreateDialog(Bundle savedInstanceState) {
+            final boolean isFrontFacingFps = getResources().getBoolean(
+                    R.bool.config_is_front_facing_fps);
+            final boolean isSideMountedFps = getResources().getBoolean(
+                    R.bool.config_is_side_fps);
+            final String fpsLocation = getString(isSideMountedFps
+                    ? R.string.fingerprint_enroll_touch_dialog_message_side : isFrontFacingFps
+                            ? R.string.fingerprint_enroll_touch_dialog_message_front
+                            : R.string.fingerprint_enroll_touch_dialog_message_rear);
+
             AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
                     R.style.Theme_AlertDialog);
             builder.setTitle(R.string.security_settings_fingerprint_enroll_touch_dialog_title)
-                    .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
+                    .setMessage(fpsLocation)
                     .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok,
                             new DialogInterface.OnClickListener() {
                                 @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index 89bda20..a346431 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -124,8 +124,23 @@
             mIsReverseDefaultRotation = getApplicationContext().getResources().getBoolean(
                     com.android.internal.R.bool.config_reverseDefaultRotation);
         } else {
+            // Remaining usecases can be either front facing fps or dedicated
+            // side mounted fps (not embedded in the power button)
+            final boolean isFrontFacingFps = getResources().getBoolean(
+                    R.bool.config_is_front_facing_fps);
+            final boolean isSideMountedFps = getResources().getBoolean(
+                    R.bool.config_is_side_fps);
+            final String fpsLocation = getString(isSideMountedFps
+                    ? R.string.fingerprint_enroll_find_sensor_message_side : isFrontFacingFps
+                            ? R.string.fingerprint_enroll_find_sensor_message_front
+                            : R.string.fingerprint_enroll_find_sensor_message_rear);
+
             setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
-            setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
+            setDescriptionText(fpsLocation);
+            if (isFrontFacingFps) {
+                findViewById(R.id.fingerprint_sensor_location_front_overlay)
+                        .setVisibility(View.VISIBLE);
+            }
         }
         if (savedInstanceState != null) {
             mNextClicked = savedInstanceState.getBoolean(SAVED_STATE_IS_NEXT_CLICKED, mNextClicked);
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index 08fb5c0..9057024 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
@@ -28,6 +28,7 @@
 import android.os.Bundle;
 import android.text.Html;
 import android.text.method.LinkMovementMethod;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
@@ -127,6 +128,10 @@
 
         final ScrollView scrollView = findViewById(R.id.sud_scroll_view);
         scrollView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+
+        if (TextUtils.isEmpty(footerLink.getText())) {
+            findViewById(R.id.layout_footer_learn_more).setVisibility(View.GONE);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
index 99d4ff9..4d7e2d2 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
@@ -28,6 +28,7 @@
 import android.view.View;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
+import android.widget.ImageView;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -53,6 +54,7 @@
     private float mPulseRadius;
     private ValueAnimator mRadiusAnimator;
     private ValueAnimator mAlphaAnimator;
+    private ImageView mOverlayImage;
 
     public FingerprintLocationAnimationView(Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
@@ -92,7 +94,11 @@
     }
 
     private float getCenterY() {
-        return getHeight() * mFractionCenterY;
+        if (mOverlayImage == null) {
+            mOverlayImage = (ImageView) getRootView().findViewById(
+                    R.id.fingerprint_sensor_location);
+        }
+        return mOverlayImage.getHeight() * mFractionCenterY;
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 7f99ae9..3d611fe 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -181,6 +181,7 @@
                 mRequireScreenOnToAuthPreferenceController;
         private RestrictedSwitchPreference mRequireScreenOnToAuthPreference;
         private PreferenceCategory mFingerprintUnlockCategory;
+        private boolean mRequireScreenOnToAuth;
 
         private FingerprintManager mFingerprintManager;
         private FingerprintUpdater mFingerprintUpdater;
@@ -247,7 +248,7 @@
                     }
 
                     private void updateDialog() {
-                        if (isSfps()) {
+                        if (isSfps() && !mRequireScreenOnToAuth) {
                             setRequireScreenOnToAuthVisibility();
                         }
                         RenameDialog renameDialog = (RenameDialog) getFragmentManager().
@@ -352,6 +353,8 @@
             mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
             mFingerprintUpdater = new FingerprintUpdater(activity, mFingerprintManager);
             mSensorProperties = mFingerprintManager.getSensorPropertiesInternal();
+            mRequireScreenOnToAuth = getContext().getResources().getBoolean(
+                    com.android.internal.R.bool.config_requireScreenOnToAuthEnabled);
 
             mToken = getIntent().getByteArrayExtra(
                     ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
@@ -521,7 +524,7 @@
                         return true;
                     });
             mFingerprintUnlockCategory.setVisible(false);
-            if (isSfps()) {
+            if (isSfps() && !mRequireScreenOnToAuth) {
                 setRequireScreenOnToAuthVisibility();
             }
             setPreferenceScreen(root);
diff --git a/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java b/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
index ee0021e..f16dd37 100644
--- a/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
+++ b/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
@@ -16,21 +16,47 @@
 
 package com.android.settings.connecteddevice;
 
+import android.content.BroadcastReceiver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.nfc.NfcAdapter;
 import android.os.UserManager;
 
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStop;
 
 /**
  * Controller that used to show NFC and payment features
  */
-public class NfcAndPaymentFragmentController extends BasePreferenceController {
+public class NfcAndPaymentFragmentController extends BasePreferenceController
+        implements LifecycleObserver, OnResume, OnStop {
     private final NfcAdapter mNfcAdapter;
     private final PackageManager mPackageManager;
     private final UserManager mUserManager;
+    private final IntentFilter mIntentFilter;
+    private Preference mPreference;
+
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (mPreference == null) {
+                return;
+            }
+
+            final String action = intent.getAction();
+            if (NfcAdapter.ACTION_ADAPTER_STATE_CHANGED.equals(action)) {
+                refreshSummary(mPreference);
+            }
+        }
+    };
 
     public NfcAndPaymentFragmentController(Context context, String preferenceKey) {
         super(context, preferenceKey);
@@ -38,6 +64,15 @@
         mPackageManager = context.getPackageManager();
         mUserManager = context.getSystemService(UserManager.class);
         mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
+
+        mIntentFilter = isNfcAvailable()
+                ? new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED) : null;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
     }
 
     @Override
@@ -61,4 +96,26 @@
         }
         return null;
     }
+
+    @Override
+    public void onStop() {
+        if (!isNfcAvailable()) {
+            return;
+        }
+
+        mContext.unregisterReceiver(mReceiver);
+    }
+
+    @Override
+    public void onResume() {
+        if (!isNfcAvailable()) {
+            return;
+        }
+
+        mContext.registerReceiver(mReceiver, mIntentFilter);
+    }
+
+    private boolean isNfcAvailable() {
+        return mNfcAdapter != null;
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/usb/UsbBackend.java b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
index 7f3a598..a4ca405 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbBackend.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
@@ -164,6 +164,30 @@
                 && mPortStatus.isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST);
     }
 
+    public boolean isSingleDataRoleSupported() {
+        return mPort != null && mPortStatus != null
+                && ((!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_HOST)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST))
+                || (!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_DEVICE)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_DEVICE)));
+    }
+
+    public boolean isSinglePowerRoleSupported() {
+        return mPort != null && mPortStatus != null
+                && ((!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_DEVICE)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_HOST))
+                || (!mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_DEVICE)
+                && !mPortStatus
+                .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST)));
+    }
+
     public static String usbFunctionsToString(long functions) {
         // TODO replace with UsbManager.usbFunctionsToString once supported by Roboelectric
         return Long.toBinaryString(functions);
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
index 6d455a6..322cb00 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
@@ -113,7 +113,8 @@
 
     @Override
     public boolean isAvailable() {
-        return !Utils.isMonkeyRunning();
+        return !Utils.isMonkeyRunning()
+                && !mUsbBackend.isSingleDataRoleSupported();
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
index 0c94d19..8602b07 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
@@ -91,7 +91,6 @@
     private static List<UsbDetailsController> createControllerList(Context context,
             UsbBackend usbBackend, UsbDetailsFragment fragment) {
         List<UsbDetailsController> ret = new ArrayList<>();
-        ret.add(new UsbDetailsHeaderController(context, fragment, usbBackend));
         ret.add(new UsbDetailsDataRoleController(context, fragment, usbBackend));
         ret.add(new UsbDetailsFunctionsController(context, fragment, usbBackend));
         ret.add(new UsbDetailsPowerRoleController(context, fragment, usbBackend));
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
deleted file mode 100644
index e151258..0000000
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.connecteddevice.usb;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.widget.LayoutPreference;
-
-/**
- * This class adds a header with device name.
- */
-public class UsbDetailsHeaderController extends UsbDetailsController {
-    private static final String KEY_DEVICE_HEADER = "usb_device_header";
-
-    private EntityHeaderController mHeaderController;
-
-    public UsbDetailsHeaderController(Context context, UsbDetailsFragment fragment,
-            UsbBackend backend) {
-        super(context, fragment, backend);
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        final LayoutPreference headerPreference = screen.findPreference(KEY_DEVICE_HEADER);
-        mHeaderController = EntityHeaderController.newInstance(mFragment.getActivity(), mFragment,
-                headerPreference.findViewById(R.id.entity_header));
-    }
-
-
-    @Override
-    protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
-        mHeaderController.setLabel(mContext.getString(R.string.usb_pref));
-        mHeaderController.setIcon(mContext.getDrawable(R.drawable.ic_usb));
-        mHeaderController.done(mFragment.getActivity(), true /* rebindActions */);
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_DEVICE_HEADER;
-    }
-}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
index 13b3076..e8ff684 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
@@ -123,7 +123,8 @@
 
     @Override
     public boolean isAvailable() {
-        return !Utils.isMonkeyRunning();
+        return !Utils.isMonkeyRunning()
+                && !mUsbBackend.isSinglePowerRoleSupported();
     }
 
     @Override
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index e15cead..04a2014 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -15,7 +15,11 @@
 package com.android.settings.datausage;
 
 import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_CELLULAR;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_VPN;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_WIFI;
 
+import android.Manifest;
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -23,6 +27,8 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
+import android.net.ConnectivitySettingsManager;
+import android.net.NetworkPolicyManager;
 import android.net.NetworkTemplate;
 import android.os.Bundle;
 import android.os.Process;
@@ -58,6 +64,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceChangeListener,
         DataSaverBackend.Listener {
@@ -73,7 +80,11 @@
     private static final String KEY_FOREGROUND_USAGE = "foreground_usage";
     private static final String KEY_BACKGROUND_USAGE = "background_usage";
     private static final String KEY_APP_SETTINGS = "app_settings";
+    private static final String KEY_RESTRICT_ALL = "restrict_all";
     private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
+    private static final String KEY_RESTRICT_CELLULAR = "restrict_cellular";
+    private static final String KEY_RESTRICT_VPN = "restrict_vpn";
+    private static final String KEY_RESTRICT_WIFI = "restrict_wifi";
     private static final String KEY_APP_LIST = "app_list";
     private static final String KEY_CYCLE = "cycle";
     private static final String KEY_UNRESTRICTED_DATA = "unrestricted_data_saver";
@@ -87,7 +98,11 @@
     private Preference mForegroundUsage;
     private Preference mBackgroundUsage;
     private Preference mAppSettings;
+    private RestrictedSwitchPreference mRestrictAll;
     private RestrictedSwitchPreference mRestrictBackground;
+    private RestrictedSwitchPreference mRestrictCellular;
+    private RestrictedSwitchPreference mRestrictVpn;
+    private RestrictedSwitchPreference mRestrictWifi;
     private PreferenceCategory mAppList;
 
     private Drawable mIcon;
@@ -171,7 +186,11 @@
                 mIcon = uidDetail.icon;
                 mLabel = uidDetail.label;
                 removePreference(KEY_UNRESTRICTED_DATA);
+                removePreference(KEY_RESTRICT_ALL);
                 removePreference(KEY_RESTRICT_BACKGROUND);
+                removePreference(KEY_RESTRICT_CELLULAR);
+                removePreference(KEY_RESTRICT_VPN);
+                removePreference(KEY_RESTRICT_WIFI);
             } else {
                 if (mPackages.size() != 0) {
                     try {
@@ -183,8 +202,16 @@
                     } catch (PackageManager.NameNotFoundException e) {
                     }
                 }
+                mRestrictAll = findPreference(KEY_RESTRICT_ALL);
+                mRestrictAll.setOnPreferenceChangeListener(this);
                 mRestrictBackground = findPreference(KEY_RESTRICT_BACKGROUND);
                 mRestrictBackground.setOnPreferenceChangeListener(this);
+                mRestrictCellular = findPreference(KEY_RESTRICT_CELLULAR);
+                mRestrictCellular.setOnPreferenceChangeListener(this);
+                mRestrictVpn = findPreference(KEY_RESTRICT_VPN);
+                mRestrictVpn.setOnPreferenceChangeListener(this);
+                mRestrictWifi = findPreference(KEY_RESTRICT_WIFI);
+                mRestrictWifi.setOnPreferenceChangeListener(this);
                 mUnrestrictedData = findPreference(KEY_UNRESTRICTED_DATA);
                 mUnrestrictedData.setOnPreferenceChangeListener(this);
             }
@@ -224,7 +251,11 @@
 
             removePreference(KEY_UNRESTRICTED_DATA);
             removePreference(KEY_APP_SETTINGS);
+            removePreference(KEY_RESTRICT_ALL);
             removePreference(KEY_RESTRICT_BACKGROUND);
+            removePreference(KEY_RESTRICT_CELLULAR);
+            removePreference(KEY_RESTRICT_VPN);
+            removePreference(KEY_RESTRICT_WIFI);
             removePreference(KEY_APP_LIST);
         }
 
@@ -266,6 +297,29 @@
             mDataSaverBackend.setIsDenylisted(mAppItem.key, mPackageName, !(Boolean) newValue);
             updatePrefs();
             return true;
+        } else if (preference == mRestrictAll) {
+            Set<Integer> uids =
+                    ConnectivitySettingsManager.getUidsAllowedOnRestrictedNetworks(mContext);
+            if (!(Boolean) newValue) {
+                uids.remove(mAppItem.key);
+            } else {
+                uids.add(mAppItem.key);
+            }
+            ConnectivitySettingsManager.setUidsAllowedOnRestrictedNetworks(mContext, uids);
+            updatePrefs();
+            return true;
+        } else if (preference == mRestrictCellular) {
+            setAppRestrictCellular(!(Boolean) newValue);
+            updatePrefs();
+            return true;
+        } else if (preference == mRestrictVpn) {
+            setAppRestrictVpn(!(Boolean) newValue);
+            updatePrefs();
+            return true;
+        } else if (preference == mRestrictWifi) {
+            setAppRestrictWifi(!(Boolean) newValue);
+            updatePrefs();
+            return true;
         } else if (preference == mUnrestrictedData) {
             mDataSaverBackend.setIsAllowlisted(mAppItem.key, mPackageName, (Boolean) newValue);
             return true;
@@ -296,7 +350,9 @@
 
     @VisibleForTesting
     void updatePrefs() {
-        updatePrefs(getAppRestrictBackground(), getUnrestrictData());
+        updatePrefs(getAppRestrictBackground(), getUnrestrictData(), getAppRestrictAll(),
+                getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+                hasInternetPermission());
     }
 
     @VisibleForTesting
@@ -332,25 +388,46 @@
         }
     }
 
-    private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
+    private void updatePrefs(boolean restrictBackground, boolean unrestrictData,
+            boolean restrictAll, boolean restrictCellular, boolean restrictVpn,
+            boolean restrictWifi, boolean hasInternetPermission) {
         if (!isSimHardwareVisible(mContext)) {
             return;
         }
         setBackPreferenceListAnimatorIfLoaded();
         final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
                 mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
+        if (mRestrictAll != null) {
+            mRestrictAll.setEnabled(hasInternetPermission);
+            mRestrictAll.setChecked(!restrictAll);
+        }
         if (mRestrictBackground != null) {
-            mRestrictBackground.setChecked(!restrictBackground);
             mRestrictBackground.setDisabledByAdmin(admin);
+            mRestrictBackground.setEnabled(hasInternetPermission &&
+                    !mRestrictBackground.isDisabledByAdmin() && !restrictAll &&
+                    !restrictCellular);
+            mRestrictBackground.setChecked(!restrictBackground && !restrictAll &&
+                    !restrictCellular);
+        }
+        if (mRestrictCellular != null) {
+            mRestrictCellular.setEnabled(hasInternetPermission && !restrictAll);
+            mRestrictCellular.setChecked(!restrictAll && !restrictCellular);
+        }
+        if (mRestrictVpn != null) {
+            mRestrictVpn.setEnabled(hasInternetPermission && !restrictAll);
+            mRestrictVpn.setChecked(!restrictAll && !restrictVpn);
+        }
+        if (mRestrictWifi != null) {
+            mRestrictWifi.setEnabled(hasInternetPermission && !restrictAll);
+            mRestrictWifi.setChecked(!restrictAll && !restrictWifi);
         }
         if (mUnrestrictedData != null) {
-            if (restrictBackground) {
-                mUnrestrictedData.setVisible(false);
-            } else {
-                mUnrestrictedData.setVisible(true);
-                mUnrestrictedData.setChecked(unrestrictData);
-                mUnrestrictedData.setDisabledByAdmin(admin);
-            }
+            mUnrestrictedData.setDisabledByAdmin(admin);
+            mUnrestrictedData.setEnabled(hasInternetPermission &&
+                    !mUnrestrictedData.isDisabledByAdmin() && !restrictBackground && !restrictAll &&
+                    !restrictCellular);
+            mUnrestrictedData.setChecked(unrestrictData && !restrictBackground && !restrictAll &&
+                    !restrictCellular);
         }
     }
 
@@ -387,9 +464,24 @@
     }
 
     private boolean getAppRestrictBackground() {
-        final int uid = mAppItem.key;
-        final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
-        return (uidPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0;
+        return getAppRestriction(POLICY_REJECT_METERED_BACKGROUND);
+    }
+
+    private boolean getAppRestrictCellular() {
+        return getAppRestriction(POLICY_REJECT_CELLULAR);
+    }
+
+    private boolean getAppRestrictVpn() {
+        return getAppRestriction(POLICY_REJECT_VPN);
+    }
+
+    private boolean getAppRestrictWifi() {
+        return getAppRestriction(POLICY_REJECT_WIFI);
+    }
+
+    private boolean getAppRestrictAll() {
+        return !ConnectivitySettingsManager.getUidsAllowedOnRestrictedNetworks(mContext)
+                .contains(mAppItem.key);
     }
 
     private boolean getUnrestrictData() {
@@ -399,6 +491,38 @@
         return false;
     }
 
+    private boolean getAppRestriction(int policy) {
+        final int uid = mAppItem.key;
+        final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
+        return (uidPolicy & policy) != 0;
+    }
+
+    private boolean hasInternetPermission() {
+        return mPackageManager.checkPermission(Manifest.permission.INTERNET, mPackageName)
+                == PackageManager.PERMISSION_GRANTED;
+    }
+
+    private void setAppRestrictCellular(boolean restrict) {
+        setAppRestriction(POLICY_REJECT_CELLULAR, restrict);
+    }
+
+    private void setAppRestrictVpn(boolean restrict) {
+        setAppRestriction(POLICY_REJECT_VPN, restrict);
+    }
+
+    private void setAppRestrictWifi(boolean restrict) {
+        setAppRestriction(POLICY_REJECT_WIFI, restrict);
+    }
+
+    private void setAppRestriction(int policy, boolean restrict) {
+        final int uid = mAppItem.key;
+        if (restrict) {
+            services.mPolicyManager.addUidPolicy(uid, policy);
+        } else {
+            services.mPolicyManager.removeUidPolicy(uid, policy);
+        }
+    }
+
     @VisibleForTesting
     void addEntityHeader() {
         String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null;
@@ -525,14 +649,18 @@
     @Override
     public void onAllowlistStatusChanged(int uid, boolean isAllowlisted) {
         if (mAppItem.uids.get(uid, false)) {
-            updatePrefs(getAppRestrictBackground(), isAllowlisted);
+            updatePrefs(getAppRestrictBackground(), isAllowlisted, getAppRestrictAll(),
+                    getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+                    hasInternetPermission());
         }
     }
 
     @Override
     public void onDenylistStatusChanged(int uid, boolean isDenylisted) {
         if (mAppItem.uids.get(uid, false)) {
-            updatePrefs(isDenylisted, getUnrestrictData());
+            updatePrefs(isDenylisted, getUnrestrictData(), getAppRestrictAll(),
+                    getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+                    hasInternetPermission());
         }
     }
 }
diff --git a/src/com/android/settings/datausage/DataSaverBackend.java b/src/com/android/settings/datausage/DataSaverBackend.java
index e39e41a..98d909f 100644
--- a/src/com/android/settings/datausage/DataSaverBackend.java
+++ b/src/com/android/settings/datausage/DataSaverBackend.java
@@ -80,12 +80,15 @@
 
     public void setIsAllowlisted(int uid, String packageName, boolean allowlisted) {
         final int policy = allowlisted ? POLICY_ALLOW_METERED_BACKGROUND : POLICY_NONE;
-        mPolicyManager.setUidPolicy(uid, policy);
         mUidPolicies.put(uid, policy);
         if (allowlisted) {
+            mPolicyManager.addUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
             mMetricsFeatureProvider.action(
                     mContext, SettingsEnums.ACTION_DATA_SAVER_WHITELIST, packageName);
+        } else {
+            mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
         }
+        mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
     }
 
     public boolean isAllowlisted(int uid) {
@@ -110,12 +113,15 @@
 
     public void setIsDenylisted(int uid, String packageName, boolean denylisted) {
         final int policy = denylisted ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE;
-        mPolicyManager.setUidPolicy(uid, policy);
         mUidPolicies.put(uid, policy);
         if (denylisted) {
+            mPolicyManager.addUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
             mMetricsFeatureProvider.action(
                     mContext, SettingsEnums.ACTION_DATA_SAVER_BLACKLIST, packageName);
+        } else {
+            mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
         }
+        mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
     }
 
     public boolean isDenylisted(int uid) {
@@ -155,6 +161,9 @@
         loadAllowlist();
         loadDenylist();
 
+        // We only care about allow/reject metered background policy here.
+        newPolicy &= POLICY_ALLOW_METERED_BACKGROUND | POLICY_REJECT_METERED_BACKGROUND;
+
         final int oldPolicy = mUidPolicies.get(uid, POLICY_NONE);
         if (newPolicy == POLICY_NONE) {
             mUidPolicies.delete(uid);
diff --git a/src/com/android/settings/development/AdbRootPreferenceController.java b/src/com/android/settings/development/AdbRootPreferenceController.java
new file mode 100644
index 0000000..54f249e
--- /dev/null
+++ b/src/com/android/settings/development/AdbRootPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.adb.ADBRootService;
+import android.content.Context;
+import android.os.UserManager;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class AdbRootPreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+    private static final String TAG = "AdbRootPreferenceController";
+    private static final String PREF_KEY = "enable_adb_root";
+
+    private final ADBRootService mADBRootService;
+
+    public AdbRootPreferenceController(Context context,
+            DevelopmentSettingsDashboardFragment fragment) {
+        super(context);
+
+        mADBRootService = new ADBRootService();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mADBRootService.isSupported();
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        ((SwitchPreference) mPreference).setChecked(mADBRootService.getEnabled());
+
+        if (!isAdminUser()) {
+            mPreference.setEnabled(false);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean rootEnabled = (Boolean) newValue;
+        mADBRootService.setEnabled(rootEnabled);
+        return true;
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchEnabled() {
+        if (isAdminUser()) {
+            mPreference.setEnabled(true);
+        }
+    }
+
+    boolean isAdminUser() {
+        return ((UserManager) mContext.getSystemService(Context.USER_SERVICE)).isAdminUser();
+    }
+}
diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
index e47048a..d8a0f21 100644
--- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
@@ -73,23 +73,10 @@
         }
     }
 
-    @Override
-    protected void onDeveloperOptionsSwitchDisabled() {
-        super.onDeveloperOptionsSwitchDisabled();
-        final boolean offloadSupported =
-                SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
-        if (offloadSupported) {
-            ((SwitchPreference) mPreference).setChecked(false);
-            SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, "false");
-        }
-    }
-
     public boolean isDefaultValue() {
-        final boolean offloadSupported =
-                SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
-        final boolean offloadDisabled =
-                    SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
-        return offloadSupported ? !offloadDisabled : true;
+        // Always return true here to avoid needing to reboot when disabling
+        // developer options, since we aren't turning this off when doing so anymore.
+        return true;
     }
 
     /**
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 70fbefc..70237e0 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -524,6 +524,7 @@
         controllers.add(new DisableAutomaticUpdatesPreferenceController(context));
         controllers.add(new SelectDSUPreferenceController(context));
         controllers.add(new AdbPreferenceController(context, fragment));
+        controllers.add(new AdbRootPreferenceController(context, fragment));
         controllers.add(new ClearAdbKeysPreferenceController(context, fragment));
         controllers.add(new WirelessDebuggingPreferenceController(context, lifecycle));
         controllers.add(new AdbAuthorizationTimeoutPreferenceController(context));
diff --git a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
index 22b3f83..d829e2d 100644
--- a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
+++ b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
@@ -75,6 +75,6 @@
 
     @VisibleForTesting
     boolean isDebuggable() {
-        return Build.IS_DEBUGGABLE;
+        return Build.IS_ENG;
     }
 }
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index 6af58b5..a40caf8 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -182,7 +182,7 @@
                 }
                 mDevHitToast = Toast.makeText(mContext,
                         mContext.getResources().getQuantityString(
-                                R.plurals.show_dev_countdown, mDevHitCountdown,
+                                R.plurals.show_dev_countdown_cm, mDevHitCountdown,
                                 mDevHitCountdown),
                         Toast.LENGTH_SHORT);
                 mDevHitToast.show();
@@ -198,7 +198,7 @@
             if (mDevHitToast != null) {
                 mDevHitToast.cancel();
             }
-            mDevHitToast = Toast.makeText(mContext, R.string.show_dev_already,
+            mDevHitToast = Toast.makeText(mContext, R.string.show_dev_already_cm,
                     Toast.LENGTH_LONG);
             mDevHitToast.show();
             mMetricsFeatureProvider.action(
@@ -237,7 +237,7 @@
         if (mDevHitToast != null) {
             mDevHitToast.cancel();
         }
-        mDevHitToast = Toast.makeText(mContext, R.string.show_dev_on,
+        mDevHitToast = Toast.makeText(mContext, R.string.show_dev_on_cm,
                 Toast.LENGTH_LONG);
         mDevHitToast.show();
 
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
index 5b247f8..622c1e7 100644
--- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
@@ -58,7 +58,24 @@
 
     @Override
     public CharSequence getSummary() {
-        return getFirstPhoneNumber();
+        return mContext.getString(R.string.device_info_protected_single_press);
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        String prefKey = preference.getKey();
+        if (prefKey.startsWith(KEY_PHONE_NUMBER)) {
+            int simSlotNumber = 0;
+            if (!TextUtils.equals(prefKey, KEY_PHONE_NUMBER)) {
+                // Get multisim slot number from preference key.
+                // Multisim preference key is KEY_PHONE_NUMBER + simSlotNumber
+                simSlotNumber = Integer.parseInt(
+                        prefKey.replaceAll("[^0-9]", ""));
+            }
+            final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
+            simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
+        }
+        return super.handlePreferenceTreeClick(preference);
     }
 
     @Override
@@ -78,7 +95,6 @@
             final Preference multiSimPreference = createNewPreference(screen.getContext());
             multiSimPreference.setOrder(phonePreferenceOrder + simSlotNumber);
             multiSimPreference.setKey(KEY_PHONE_NUMBER + simSlotNumber);
-            multiSimPreference.setSelectable(false);
             category.addPreference(multiSimPreference);
             mPreferenceList.add(multiSimPreference);
         }
@@ -89,7 +105,7 @@
         for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) {
             final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
             simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
-            simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
+            simStatusPreference.setSummary(getSummary());
         }
     }
 
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
index dd3d560..a81993b 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.os.SystemProperties;
+import android.text.TextUtils;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -41,7 +42,13 @@
 
     @Override
     public CharSequence getSummary() {
-        return SystemProperties.get(BASEBAND_PROPERTY,
+        String baseband = SystemProperties.get(BASEBAND_PROPERTY,
                 mContext.getString(R.string.device_info_default));
+        for (String str : baseband.split(",")) {
+            if (!TextUtils.isEmpty(str)) {
+                return str;
+            }
+        }
+        return baseband;
     }
 }
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java
new file mode 100644
index 0000000..468ea5e
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.os.SystemProperties;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+public class LineageBuildDatePreferenceController extends BasePreferenceController {
+
+    private static final String TAG = "LineageBuildDateCtrl";
+
+    private static final String KEY_BUILD_DATE_PROP = "ro.build.date";
+
+    public LineageBuildDatePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return SystemProperties.get(KEY_BUILD_DATE_PROP,
+                mContext.getString(R.string.unknown));
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java
new file mode 100644
index 0000000..40887ee
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.text.format.DateFormat;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+public class LineageVendorSecurityPatchLevelPreferenceController extends BasePreferenceController {
+
+    private static final String TAG = "LineageVendorSecurityPatchCtrl";
+
+    private static final String KEY_AOSP_VENDOR_SECURITY_PATCH =
+            "ro.vendor.build.security_patch";
+
+    private static final String KEY_LINEAGE_VENDOR_SECURITY_PATCH =
+            "ro.lineage.build.vendor_security_patch";
+
+    public LineageVendorSecurityPatchLevelPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        String patchLevel = SystemProperties.get(KEY_AOSP_VENDOR_SECURITY_PATCH);
+
+        if (patchLevel.isEmpty()) {
+            patchLevel = SystemProperties.get(KEY_LINEAGE_VENDOR_SECURITY_PATCH);
+        }
+
+        if (!patchLevel.isEmpty()) {
+            try {
+                SimpleDateFormat template = new SimpleDateFormat("yyyy-MM-dd");
+                Date patchLevelDate = template.parse(patchLevel);
+                String format = DateFormat.getBestDateTimePattern(Locale.getDefault(), "dMMMMyyyy");
+                patchLevel = DateFormat.format(format, patchLevelDate).toString();
+            } catch (ParseException e) {
+                // parsing failed, use raw string
+            }
+        } else {
+            patchLevel = mContext.getString(R.string.unknown);
+        }
+
+        return patchLevel;
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java
new file mode 100644
index 0000000..0f2fead
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2019-2022 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+
+public class LineageVersionDetailPreferenceController extends BasePreferenceController {
+
+    private static final String TAG = "lineageVersionDialogCtrl";
+    private static final int DELAY_TIMER_MILLIS = 500;
+    private static final int ACTIVITY_TRIGGER_COUNT = 3;
+
+    private static final String KEY_LINEAGE_VERSION_PROP = "ro.lineage.display.version";
+
+    private static final String PLATLOGO_PACKAGE_NAME = "org.lineageos.lineageparts";
+    private static final String PLATLOGO_ACTIVITY_CLASS =
+            PLATLOGO_PACKAGE_NAME + ".logo.PlatLogoActivity";
+
+    private final UserManager mUserManager;
+    private final long[] mHits = new long[ACTIVITY_TRIGGER_COUNT];
+
+    private RestrictedLockUtils.EnforcedAdmin mFunDisallowedAdmin;
+    private boolean mFunDisallowedBySystem;
+
+    public LineageVersionDetailPreferenceController(Context context, String key) {
+        super(context, key);
+        mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+        initializeAdminPermissions();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean useDynamicSliceSummary() {
+        return true;
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return true;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return SystemProperties.get(KEY_LINEAGE_VERSION_PROP,
+                mContext.getString(R.string.unknown));
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+            return false;
+        }
+        if (Utils.isMonkeyRunning()) {
+            return false;
+        }
+        arrayCopy();
+        mHits[mHits.length - 1] = SystemClock.uptimeMillis();
+        if (mHits[0] >= (SystemClock.uptimeMillis() - DELAY_TIMER_MILLIS)) {
+            if (mUserManager.hasUserRestriction(UserManager.DISALLOW_FUN)) {
+                if (mFunDisallowedAdmin != null && !mFunDisallowedBySystem) {
+                    RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext,
+                            mFunDisallowedAdmin);
+                }
+                Log.d(TAG, "Sorry, no fun for you!");
+                return true;
+            }
+
+            final Intent intent = new Intent(Intent.ACTION_MAIN)
+                     .setClassName(PLATLOGO_PACKAGE_NAME, PLATLOGO_ACTIVITY_CLASS);
+            try {
+                mContext.startActivity(intent);
+            } catch (Exception e) {
+                Log.e(TAG, "Unable to start activity " + intent.toString());
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Copies the array onto itself to remove the oldest hit.
+     */
+    @VisibleForTesting
+    void arrayCopy() {
+        System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
+    }
+
+    @VisibleForTesting
+    void initializeAdminPermissions() {
+        mFunDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+                mContext, UserManager.DISALLOW_FUN, UserHandle.myUserId());
+        mFunDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(
+                mContext, UserManager.DISALLOW_FUN, UserHandle.myUserId());
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
index d6f8a51..9b7359b 100644
--- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
@@ -100,7 +100,7 @@
 
     @Override
     public CharSequence getSummary() {
-        return getSummary(0);
+        return mContext.getString(R.string.device_info_protected_single_press);
     }
 
     private CharSequence getSummary(int simSlot) {
@@ -117,6 +117,7 @@
         }
 
         ImeiInfoDialogFragment.show(mFragment, simSlot, preference.getTitle().toString());
+        preference.setSummary(getSummary(simSlot));
         return true;
     }
 
@@ -134,7 +135,7 @@
 
     private void updatePreference(Preference preference, int simSlot) {
         preference.setTitle(getTitle(simSlot));
-        preference.setSummary(getSummary(simSlot));
+        preference.setSummary(getSummary());
     }
 
     private CharSequence getTitleForGsmPhone(int simSlot) {
diff --git a/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java b/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java
new file mode 100644
index 0000000..a59f5cf
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.legal;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.SystemProperties;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class LineageLicensePreferenceController extends BasePreferenceController {
+
+    private static final String PROPERTY_LINEAGE_LICENSE_URL = "ro.lineagelegal.url";
+
+    public LineageLicensePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference != null) {
+            preference.setOnPreferenceClickListener(pref -> {
+                mContext.startActivity(getIntent());
+                return true;
+            });
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (getIntent().resolveActivity(mContext.getPackageManager()) != null) {
+            return AVAILABLE;
+        } else {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+    }
+
+    private Intent getIntent() {
+        return new Intent(Intent.ACTION_VIEW,
+                Uri.parse(SystemProperties.get(PROPERTY_LINEAGE_LICENSE_URL)));
+    }
+}
diff --git a/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java b/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java
new file mode 100644
index 0000000..aebcd3d
--- /dev/null
+++ b/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import android.content.Context;
+
+import lineageos.providers.LineageSettings;
+
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+public class AutoBrightnessOneShotPreferenceController extends TogglePreferenceController {
+
+    public AutoBrightnessOneShotPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return LineageSettings.System.getInt(mContext.getContentResolver(),
+                LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT, 0) == 1;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        LineageSettings.System.putInt(mContext.getContentResolver(),
+                LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT, isChecked ? 1 : 0);
+        return true;
+    }
+
+    @Override
+    @AvailabilityStatus
+    public int getAvailabilityStatus() {
+        return mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_automatic_brightness_available)
+                ? AVAILABLE_UNSEARCHABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return mContext.getText(isChecked()
+                ? R.string.auto_brightness_summary_on
+                : R.string.auto_brightness_summary_off);
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_display;
+    }
+}
diff --git a/src/com/android/settings/display/ColorModePreferenceController.java b/src/com/android/settings/display/ColorModePreferenceController.java
index 6cd4867..14a2241 100644
--- a/src/com/android/settings/display/ColorModePreferenceController.java
+++ b/src/com/android/settings/display/ColorModePreferenceController.java
@@ -28,8 +28,11 @@
 
     @Override
     public int getAvailabilityStatus() {
+        final int[] availableColorModes = mContext.getResources().getIntArray(
+                com.android.internal.R.array.config_availableColorModes);
         return mContext.getSystemService(ColorDisplayManager.class)
                 .isDeviceColorManaged()
+                && availableColorModes.length > 0
                 && !ColorDisplayManager.areAccessibilityTransformsEnabled(mContext) ?
                 AVAILABLE : DISABLED_FOR_USER;
     }
diff --git a/src/com/android/settings/display/MinRefreshRatePreferenceController.java b/src/com/android/settings/display/MinRefreshRatePreferenceController.java
new file mode 100644
index 0000000..caaf11b
--- /dev/null
+++ b/src/com/android/settings/display/MinRefreshRatePreferenceController.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2020 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import static android.provider.Settings.System.MIN_REFRESH_RATE;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.view.Display;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class MinRefreshRatePreferenceController extends BasePreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_MIN_REFRESH_RATE = "min_refresh_rate";
+
+    private ListPreference mListPreference;
+
+    private List<String> mEntries = new ArrayList<>();
+    private List<String> mValues = new ArrayList<>();
+
+    public MinRefreshRatePreferenceController(Context context) {
+        super(context, KEY_MIN_REFRESH_RATE);
+
+        if (mContext.getResources().getBoolean(R.bool.config_show_min_refresh_rate_switch)) {
+            Display.Mode mode = mContext.getDisplay().getMode();
+            Display.Mode[] modes = mContext.getDisplay().getSupportedModes();
+            for (Display.Mode m : modes) {
+                if (m.getPhysicalWidth() == mode.getPhysicalWidth() &&
+                        m.getPhysicalHeight() == mode.getPhysicalHeight()) {
+                    mEntries.add(String.format("%.02fHz", m.getRefreshRate())
+                            .replaceAll("[\\.,]00", ""));
+                    mValues.add(String.format(Locale.US, "%.02f", m.getRefreshRate()));
+                }
+            }
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mEntries.size() > 1 ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_MIN_REFRESH_RATE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        mListPreference = screen.findPreference(getPreferenceKey());
+        mListPreference.setEntries(mEntries.toArray(new String[mEntries.size()]));
+        mListPreference.setEntryValues(mValues.toArray(new String[mValues.size()]));
+
+        super.displayPreference(screen);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final float currentValue = Settings.System.getFloat(mContext.getContentResolver(),
+                MIN_REFRESH_RATE, 60.00f);
+        int index = mListPreference.findIndexOfValue(
+                String.format(Locale.US, "%.02f", currentValue));
+        if (index < 0) index = 0;
+        mListPreference.setValueIndex(index);
+        mListPreference.setSummary(mListPreference.getEntries()[index]);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        Settings.System.putFloat(mContext.getContentResolver(), MIN_REFRESH_RATE,
+                Float.valueOf((String) newValue));
+        updateState(preference);
+        return true;
+    }
+
+}
diff --git a/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java b/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java
new file mode 100644
index 0000000..e4f4a07
--- /dev/null
+++ b/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import android.content.Context;
+import android.hardware.display.DisplayManager;
+import android.os.Handler;
+import android.provider.DeviceConfig;
+import android.provider.Settings;
+import android.util.Log;
+import android.view.Display;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+import java.util.ArrayList;
+import java.util.concurrent.Executor;
+import java.util.List;
+import java.util.Locale;
+
+public class PeakRefreshRateListPreferenceController extends BasePreferenceController
+        implements LifecycleObserver, OnStart, OnStop, Preference.OnPreferenceChangeListener {
+
+    private static float DEFAULT_REFRESH_RATE = 60f;
+
+    private static final String TAG = "PeakRefreshRatePrefCtr";
+    private static final float INVALIDATE_REFRESH_RATE = -1f;
+
+    private final Handler mHandler;
+    private final IDeviceConfigChange mOnDeviceConfigChange;
+    private final DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
+    private ListPreference mListPreference;
+
+    private List<String> mEntries = new ArrayList<>();
+    private List<String> mValues = new ArrayList<>();
+
+    private interface IDeviceConfigChange {
+        void onDefaultRefreshRateChanged();
+    }
+
+    public PeakRefreshRateListPreferenceController(Context context, String key) {
+        super(context, key);
+        mHandler = new Handler(context.getMainLooper());
+        mDeviceConfigDisplaySettings = new DeviceConfigDisplaySettings();
+        mOnDeviceConfigChange =
+                new IDeviceConfigChange() {
+                    public void onDefaultRefreshRateChanged() {
+                        updateState(mListPreference);
+                    }
+                };
+
+        final DisplayManager dm = mContext.getSystemService(DisplayManager.class);
+        final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY);
+
+        if (display == null) {
+            Log.w(TAG, "No valid default display device");
+        } else {
+            Display.Mode mode = display.getMode();
+            Display.Mode[] modes = display.getSupportedModes();
+            for (Display.Mode m : modes) {
+                if (m.getPhysicalWidth() == mode.getPhysicalWidth() &&
+                        m.getPhysicalHeight() == mode.getPhysicalHeight()) {
+                    mEntries.add(String.format("%.02fHz", m.getRefreshRate())
+                            .replaceAll("[\\.,]00", ""));
+                    mValues.add(String.format(Locale.US, "%.02f", m.getRefreshRate()));
+                }
+            }
+        }
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mListPreference = screen.findPreference(getPreferenceKey());
+        mListPreference.setEntries(mEntries.toArray(new String[mEntries.size()]));
+        mListPreference.setEntryValues(mValues.toArray(new String[mValues.size()]));
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (mContext.getResources().getBoolean(R.bool.config_show_peak_refresh_rate_switch)) {
+            return AVAILABLE;
+        } else {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final float currentValue = Settings.System.getFloat(mContext.getContentResolver(),
+                Settings.System.PEAK_REFRESH_RATE, getDefaultPeakRefreshRate());
+        int index = mListPreference.findIndexOfValue(
+                String.format(Locale.US, "%.02f", currentValue));
+        if (index < 0) index = 0;
+        mListPreference.setValueIndex(index);
+        mListPreference.setSummary(mListPreference.getEntries()[index]);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        Settings.System.putFloat(mContext.getContentResolver(), Settings.System.PEAK_REFRESH_RATE,
+                Float.valueOf((String) newValue));
+        updateState(preference);
+        return true;
+    }
+
+    @Override
+    public void onStart() {
+        mDeviceConfigDisplaySettings.startListening();
+    }
+
+    @Override
+    public void onStop() {
+        mDeviceConfigDisplaySettings.stopListening();
+    }
+
+    private float findPeakRefreshRate(Display.Mode[] modes) {
+        float peakRefreshRate = DEFAULT_REFRESH_RATE;
+        for (Display.Mode mode : modes) {
+            if (Math.round(mode.getRefreshRate()) > DEFAULT_REFRESH_RATE) {
+                peakRefreshRate = mode.getRefreshRate();
+            }
+        }
+        return peakRefreshRate;
+    }
+
+    private class DeviceConfigDisplaySettings
+            implements DeviceConfig.OnPropertiesChangedListener, Executor {
+        public void startListening() {
+            DeviceConfig.addOnPropertiesChangedListener(
+                    DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
+                    this /* Executor */,
+                    this /* Listener */);
+        }
+
+        public void stopListening() {
+            DeviceConfig.removeOnPropertiesChangedListener(this);
+        }
+
+        public float getDefaultPeakRefreshRate() {
+            float defaultPeakRefreshRate =
+                    DeviceConfig.getFloat(
+                            DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
+                            DisplayManager.DeviceConfig.KEY_PEAK_REFRESH_RATE_DEFAULT,
+                            INVALIDATE_REFRESH_RATE);
+            Log.d(TAG, "DeviceConfig getDefaultPeakRefreshRate : " + defaultPeakRefreshRate);
+
+            return defaultPeakRefreshRate;
+        }
+
+        @Override
+        public void onPropertiesChanged(DeviceConfig.Properties properties) {
+            // Got notified if any property has been changed in NAMESPACE_DISPLAY_MANAGER. The
+            // KEY_PEAK_REFRESH_RATE_DEFAULT value could be added, changed, removed or unchanged.
+            // Just force a UI update for any case.
+            if (mOnDeviceConfigChange != null) {
+                mOnDeviceConfigChange.onDefaultRefreshRateChanged();
+                updateState(mListPreference);
+            }
+        }
+
+        @Override
+        public void execute(Runnable runnable) {
+            if (mHandler != null) {
+                mHandler.post(runnable);
+            }
+        }
+    }
+
+    private float getDefaultPeakRefreshRate() {
+        float defaultPeakRefreshRate = mDeviceConfigDisplaySettings.getDefaultPeakRefreshRate();
+        if (defaultPeakRefreshRate == INVALIDATE_REFRESH_RATE) {
+            defaultPeakRefreshRate = (float) mContext.getResources().getInteger(
+                    com.android.internal.R.integer.config_defaultPeakRefreshRate);
+        }
+
+        return defaultPeakRefreshRate;
+    }
+}
diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
index 27ba340..7bc34ef 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -89,6 +89,10 @@
         super.displayPreference(screen);
 
         mPreference = screen.findPreference(getPreferenceKey());
+
+        final String summary = mContext.getString(R.string.peak_refresh_rate_summary_custom,
+                (int)mPeakRefreshRate);
+        mPreference.setSummary(summary);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java b/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java
new file mode 100644
index 0000000..21586ea
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge;
+
+import android.content.Context;
+import android.os.RemoteException;
+import android.util.Log;
+
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.BasePreferenceController;
+
+import vendor.lineage.fastcharge.V1_0.IFastCharge;
+
+import java.util.NoSuchElementException;
+
+/**
+ * Controller to change and update the fast charging toggle
+ */
+public class FastChargingPreferenceController extends BasePreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_FAST_CHARGING = "fast_charging";
+    private static final String TAG = "FastChargingPreferenceController";
+
+    private IFastCharge mFastCharge = null;
+
+    public FastChargingPreferenceController(Context context) {
+        super(context, KEY_FAST_CHARGING);
+        try {
+            mFastCharge = IFastCharge.getService();
+        } catch (NoSuchElementException | RemoteException e) {
+            Log.e(TAG, "Failed to get IFastCharge interface", e);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mFastCharge != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        boolean fastChargingEnabled = false;
+
+        try {
+            fastChargingEnabled = mFastCharge.isEnabled();
+        } catch (RemoteException e) {
+            Log.e(TAG, "isEnabled failed", e);
+        }
+
+        ((SwitchPreference) preference).setChecked(fastChargingEnabled);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean shouldEnableFastCharging = (Boolean) newValue;
+
+        try {
+            mFastCharge.setEnabled(shouldEnableFastCharging);
+            updateState(preference);
+        } catch (RemoteException e) {
+            Log.e(TAG, "setEnabled failed", e);
+        }
+
+        return false;
+    }
+}
diff --git a/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java b/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
index 546581b..15a6ade 100644
--- a/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
+++ b/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
@@ -31,6 +31,10 @@
 import com.android.settings.widget.SeekBarPreference;
 import com.android.settingslib.search.SearchIndexable;
 
+import static com.android.systemui.shared.recents.utilities.Utilities.isTablet;
+
+import lineageos.providers.LineageSettings;
+
 /**
  * A fragment to include all the settings related to Gesture Navigation mode.
  */
@@ -45,6 +49,8 @@
     private static final String LEFT_EDGE_SEEKBAR_KEY = "gesture_left_back_sensitivity";
     private static final String RIGHT_EDGE_SEEKBAR_KEY = "gesture_right_back_sensitivity";
 
+    private static final String NAVIGATION_BAR_HINT_KEY = "navigation_bar_hint";
+
     private WindowManager mWindowManager;
     private BackGestureIndicatorView mIndicatorView;
 
@@ -75,6 +81,13 @@
 
         initSeekBarPreference(LEFT_EDGE_SEEKBAR_KEY);
         initSeekBarPreference(RIGHT_EDGE_SEEKBAR_KEY);
+
+        boolean isTaskbarEnabled = LineageSettings.System.getInt(getContext().getContentResolver(),
+                LineageSettings.System.ENABLE_TASKBAR, isTablet(getContext()) ? 1 : 0) == 1;
+        if (isTaskbarEnabled) {
+            getPreferenceScreen().removePreference(
+                    getPreferenceScreen().findPreference(NAVIGATION_BAR_HINT_KEY));
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index d82cb10..4c2b099 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -56,6 +56,7 @@
         use(AssistGestureSettingsPreferenceController.class).setAssistOnly(false);
         use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
         use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
+        use(ScreenOffUdfpsPreferenceController.class).setConfig(getConfig(context));
     }
 
     private AmbientDisplayConfiguration getConfig(Context context) {
diff --git a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
index ff069ab..a93b740 100644
--- a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
+++ b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
@@ -77,6 +77,8 @@
         controllers.add(new DoubleTapScreenPreferenceController(context, FAKE_PREF_KEY)
                 .setConfig(ambientDisplayConfiguration));
         controllers.add(new PreventRingingParentPreferenceController(context, FAKE_PREF_KEY));
+        controllers.add(new ScreenOffUdfpsPreferenceController(context, FAKE_PREF_KEY)
+                .setConfig(ambientDisplayConfiguration));
         return controllers;
     }
 }
diff --git a/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java b/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java
new file mode 100644
index 0000000..0128ea0
--- /dev/null
+++ b/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.annotation.UserIdInt;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+
+public class ScreenOffUdfpsPreferenceController extends GesturePreferenceController {
+
+    private final int ON = 1;
+    private final int OFF = 0;
+
+    private static final String PREF_KEY_VIDEO = "gesture_screen_off_udfps_video";
+
+    private static final String SECURE_KEY = "screen_off_udfps_enabled";
+
+    private AmbientDisplayConfiguration mAmbientConfig;
+    @UserIdInt
+    private final int mUserId;
+
+    public ScreenOffUdfpsPreferenceController(Context context, String key) {
+        super(context, key);
+        mUserId = UserHandle.myUserId();
+    }
+
+    public ScreenOffUdfpsPreferenceController setConfig(AmbientDisplayConfiguration config) {
+        mAmbientConfig = config;
+        return this;
+    }
+
+    private static boolean screenOffUdfpsAvailable(AmbientDisplayConfiguration config) {
+        return !TextUtils.isEmpty(config.udfpsLongPressSensorType());
+    }
+
+    public static boolean isSuggestionComplete(Context context, SharedPreferences prefs) {
+        return isSuggestionComplete(new AmbientDisplayConfiguration(context), prefs);
+    }
+
+    @VisibleForTesting
+    static boolean isSuggestionComplete(AmbientDisplayConfiguration config,
+            SharedPreferences prefs) {
+        return !screenOffUdfpsAvailable(config)
+                || prefs.getBoolean(ScreenOffUdfpsSettings.PREF_KEY_SUGGESTION_COMPLETE, false);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        // No hardware support for Screen-Off UDFPS
+        if (!screenOffUdfpsAvailable(mAmbientConfig)) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return TextUtils.equals(getPreferenceKey(), "gesture_screen_off_udfps");
+    }
+
+    @Override
+    public boolean isPublicSlice() {
+        return true;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        return Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY,
+                isChecked ? ON : OFF);
+    }
+
+    @Override
+    protected String getVideoPrefKey() {
+        return PREF_KEY_VIDEO;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return getAmbientConfig().screenOffUdfpsEnabled(mUserId);
+    }
+
+    private AmbientDisplayConfiguration getAmbientConfig() {
+        if (mAmbientConfig == null) {
+            mAmbientConfig = new AmbientDisplayConfiguration(mContext);
+        }
+        return mAmbientConfig;
+    }
+}
diff --git a/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java b/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java
new file mode 100644
index 0000000..751f0b3
--- /dev/null
+++ b/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.Arrays;
+import java.util.List;
+
+@SearchIndexable
+public class ScreenOffUdfpsSettings extends DashboardFragment {
+
+    private static final String TAG = "ScreenOffUdfps";
+
+    public static final String PREF_KEY_SUGGESTION_COMPLETE =
+            "pref_screen_off_udfps_suggestion_complete";
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory.getFactory(context)
+                .getSuggestionFeatureProvider(context);
+        SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
+        prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
+
+        use(ScreenOffUdfpsPreferenceController.class)
+                .setConfig(new AmbientDisplayConfiguration(context));
+    }
+
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PAGE_UNKNOWN;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.screen_off_udfps_settings;
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.screen_off_udfps_settings);
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 0363d9e..6c00dee 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -56,6 +56,10 @@
 import com.android.settingslib.widget.IllustrationPreference;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
+import static com.android.systemui.shared.recents.utilities.Utilities.isTablet;
+
+import lineageos.providers.LineageSettings;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -186,6 +190,9 @@
         final Context c = getContext();
         List<CandidateInfoExtra> candidates = new ArrayList<>();
 
+        boolean isTaskbarEnabled = LineageSettings.System.getInt(getContext().getContentResolver(),
+                LineageSettings.System.ENABLE_TASKBAR, isTablet(getContext()) ? 1 : 0) == 1;
+
         if (SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
                 NAV_BAR_MODE_GESTURAL_OVERLAY)) {
             candidates.add(new CandidateInfoExtra(
@@ -193,7 +200,7 @@
                     c.getText(R.string.edge_to_edge_navigation_summary),
                     KEY_SYSTEM_NAV_GESTURAL, true /* enabled */));
         }
-        if (SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
+        if (!isTaskbarEnabled && SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
                 NAV_BAR_MODE_2BUTTON_OVERLAY)) {
             candidates.add(new CandidateInfoExtra(
                     c.getText(R.string.swipe_up_to_switch_apps_title),
diff --git a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
index ab83a9d..c50be5c 100644
--- a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
+++ b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
@@ -23,6 +23,10 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.os.RemoteException;
+import android.view.Display;
+import android.view.IWindowManager;
+import android.view.WindowManagerGlobal;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
@@ -53,9 +57,19 @@
     }
 
     static boolean isGestureAvailable(Context context) {
+        boolean hasNavigationBar = false;
+        final boolean configEnabled = context.getResources().getBoolean(
+                com.android.internal.R.bool.config_swipe_up_gesture_setting_available);
+
+        try {
+            IWindowManager windowManager = WindowManagerGlobal.getWindowManagerService();
+            hasNavigationBar = windowManager.hasNavigationBar(Display.DEFAULT_DISPLAY);
+        } catch (RemoteException ex) {
+            // no window manager? good luck with that
+        }
         // Skip if the swipe up settings are not available
-        if (!context.getResources().getBoolean(
-                com.android.internal.R.bool.config_swipe_up_gesture_setting_available)) {
+        // or if on-screen navbar is disabled (for devices with hardware keys)
+        if (!configEnabled || !hasNavigationBar) {
             return false;
         }
 
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 808129f..8daf126 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -60,6 +60,7 @@
         KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener {
 
     private static final String KEYBOARD_ASSISTANCE_CATEGORY = "keyboard_assistance_category";
+    private static final String KEYBOARD_EXTRAS_CATEGORY = "keyboard_extras_category";
     private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
     private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
 
@@ -70,6 +71,8 @@
     @NonNull
     private PreferenceCategory mKeyboardAssistanceCategory;
     @NonNull
+    private PreferenceCategory mKeyboardExtrasCategory;
+    @NonNull
     private SwitchPreference mShowVirtualKeyboardSwitch;
 
     private Intent mIntentWaitingForResult;
@@ -81,6 +84,8 @@
         mIm = Preconditions.checkNotNull(activity.getSystemService(InputManager.class));
         mKeyboardAssistanceCategory = Preconditions.checkNotNull(
                 (PreferenceCategory) findPreference(KEYBOARD_ASSISTANCE_CATEGORY));
+        mKeyboardExtrasCategory = Preconditions.checkNotNull(
+                (PreferenceCategory) findPreference(KEYBOARD_EXTRAS_CATEGORY));
         mShowVirtualKeyboardSwitch = Preconditions.checkNotNull(
                 (SwitchPreference) mKeyboardAssistanceCategory.findPreference(
                         SHOW_VIRTUAL_KEYBOARD_SWITCH));
@@ -176,6 +181,8 @@
 
         mKeyboardAssistanceCategory.setOrder(1);
         preferenceScreen.addPreference(mKeyboardAssistanceCategory);
+        mKeyboardExtrasCategory.setOrder(99);
+        preferenceScreen.addPreference(mKeyboardExtrasCategory);
         updateShowVirtualKeyboardSwitch();
     }
 
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 2d80da5..86c200b 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -39,6 +39,8 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexable;
 
+import lineageos.hardware.LineageHardwareManager;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -53,6 +55,7 @@
     private static final String KEY_ON_DEVICE_RECOGNITION = "odsr_settings";
     private static final String KEY_TEXT_TO_SPEECH = "tts_settings_summary";
     private static final String KEY_POINTER_CATEGORY = "pointer_category";
+    private static final String KEY_TOUCH_HOVERING = "feature_touch_hovering";
 
     @Override
     public int getMetricsCategory() {
@@ -156,6 +159,16 @@
             new BaseSearchIndexProvider(R.xml.language_and_input) {
 
                 @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
+                    if (!hardware.isSupported(LineageHardwareManager.FEATURE_TOUCH_HOVERING)) {
+                        keys.add(KEY_TOUCH_HOVERING);
+                    }
+                    return keys;
+                }
+
+                @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
                     return buildPreferenceControllers(context, null);
diff --git a/src/com/android/settings/location/AgpsPreferenceController.java b/src/com/android/settings/location/AgpsPreferenceController.java
new file mode 100755
index 0000000..8fed53a
--- /dev/null
+++ b/src/com/android/settings/location/AgpsPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.location;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.SwitchPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+public class AgpsPreferenceController extends LocationBasePreferenceController {
+    private static final String KEY_ASSISTED_GPS = "assisted_gps";
+
+    private SwitchPreference mAgpsPreference;
+
+    public AgpsPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ASSISTED_GPS;
+    }
+
+    @AvailabilityStatus
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mAgpsPreference = (SwitchPreference) screen.findPreference(KEY_ASSISTED_GPS);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (mAgpsPreference != null) {
+            mAgpsPreference.setChecked(Settings.Global.getInt(
+                    mContext.getContentResolver(), Settings.Global.ASSISTED_GPS_ENABLED, 1) == 1);
+        }
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (KEY_ASSISTED_GPS.equals(preference.getKey())) {
+            final ContentResolver cr = mContext.getContentResolver();
+            final boolean switchState = mAgpsPreference.isChecked();
+            Settings.Global.putInt(cr, Settings.Global.ASSISTED_GPS_ENABLED,
+                    switchState ? 1 : 0);
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public void onLocationModeChanged(int mode, boolean restricted) {}
+}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index ff8b4be..aac19a7 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -109,6 +109,7 @@
         use(RecentLocationAccessSeeAllButtonPreferenceController.class).init(this);
         use(LocationForWorkPreferenceController.class).init(this);
         use(LocationSettingsFooterPreferenceController.class).init(this);
+        use(AgpsPreferenceController.class).init(this);
     }
 
     @Override
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index ae2cfbc..b8d8f9b 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -44,10 +44,12 @@
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
+import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.Toast;
 
 import androidx.annotation.Nullable;
@@ -94,6 +96,10 @@
 import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
+import com.google.android.setupcompat.template.FooterButtonStyleUtils;
+import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
 import java.util.List;
 import java.util.Optional;
 
@@ -167,6 +173,8 @@
     // Enable the Next button when a Wi-Fi network is connected.
     private boolean mEnableNextOnConnection;
 
+    private boolean mIsInSetupWizard;
+
     // This string extra specifies a network to open the connect dialog on, so the user can enter
     // network credentials.  This is used by quick settings for secured networks, among other
     // things.
@@ -271,6 +279,18 @@
             return;
         }
 
+        if (mIsInSetupWizard) {
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+            layout.setDividerInsets(Integer.MAX_VALUE, 0);
+
+            layout.setIcon(getContext().getDrawable(R.drawable.ic_network_setup));
+            layout.setHeaderText(R.string.provider_internet_settings);
+            FooterButtonStyleUtils.applyPrimaryButtonPartnerResource(activity, getNextButton(),
+                    true);
+
+            return;
+        }
+
         setPinnedHeaderView(R.layout.progress_header);
         setProgressBarVisible(false);
 
@@ -303,6 +323,9 @@
 
         mIsRestricted = isUiRestricted();
         mIsAdmin = isAdminUser();
+
+        final Intent intent = this.getIntent();
+        mIsInSetupWizard = WizardManagerHelper.isAnySetupWizard(intent);
     }
 
     private boolean isAdminUser() {
@@ -311,6 +334,17 @@
         return userManager.isAdminUser();
     }
 
+    @Override
+    public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
+            Bundle savedInstanceState) {
+        if (mIsInSetupWizard) {
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
+            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        } else {
+            return super.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        }
+    }
+
     private void addPreferences() {
         addPreferencesFromResource(R.xml.network_provider_settings);
 
@@ -436,7 +470,12 @@
                 }
             }
         };
-        setHasOptionsMenu(true);
+        if (mIsInSetupWizard) {
+            mConfigureWifiSettingsPreference.setVisible(false);
+            mDataUsagePreference.setVisible(false);
+        } else {
+            setHasOptionsMenu(true);
+        }
 
         if (savedInstanceState != null) {
             mDialogMode = savedInstanceState.getInt(SAVE_DIALOG_MODE);
@@ -981,7 +1020,9 @@
 
                 if (mClickedConnect) {
                     mClickedConnect = false;
-                    scrollToPreference(connectedWifiPreferenceCategory);
+                    if (!mIsInSetupWizard) {
+                        scrollToPreference(connectedWifiPreferenceCategory);
+                    }
                 }
             }
         } else {
@@ -1107,10 +1148,12 @@
 
     @VisibleForTesting
     void setAdditionalSettingsSummaries() {
-        mConfigureWifiSettingsPreference.setSummary(getString(
-                isWifiWakeupEnabled()
-                        ? R.string.wifi_configure_settings_preference_summary_wakeup_on
-                        : R.string.wifi_configure_settings_preference_summary_wakeup_off));
+        if (!mIsInSetupWizard) {
+            mConfigureWifiSettingsPreference.setSummary(getString(
+                    isWifiWakeupEnabled()
+                            ? R.string.wifi_configure_settings_preference_summary_wakeup_on
+                            : R.string.wifi_configure_settings_preference_summary_wakeup_off));
+        }
 
         final int numSavedNetworks = mWifiPickerTracker == null ? 0 :
                 mWifiPickerTracker.getNumSavedNetworks();
@@ -1159,7 +1202,9 @@
     }
 
     protected void setProgressBarVisible(boolean visible) {
-        showPinnedHeader(visible);
+        if (!mIsInSetupWizard) {
+            showPinnedHeader(visible);
+        }
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/network/NetworkSetupActivity.java b/src/com/android/settings/network/NetworkSetupActivity.java
new file mode 100644
index 0000000..80290ed
--- /dev/null
+++ b/src/com/android/settings/network/NetworkSetupActivity.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network;
+
+import android.content.Intent;
+import android.content.res.Resources;
+
+import androidx.preference.PreferenceFragmentCompat;
+
+import com.android.settings.ButtonBarHandler;
+import com.android.settings.network.NetworkProviderSettings;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.wifi.p2p.WifiP2pSettings;
+import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
+
+public class NetworkSetupActivity extends SettingsActivity implements ButtonBarHandler {
+
+    @Override
+    public Intent getIntent() {
+        Intent modIntent = new Intent(super.getIntent());
+        if (!modIntent.hasExtra(EXTRA_SHOW_FRAGMENT)) {
+            modIntent.putExtra(EXTRA_SHOW_FRAGMENT, getNetworkProviderSettingsClass().getName());
+            modIntent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID,
+                    R.string.provider_internet_settings);
+        }
+        return modIntent;
+    }
+
+    @Override
+    protected boolean isValidFragment(String fragmentName) {
+        final boolean isSavedAccessPointsWifiSettings =
+                SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName);
+
+        if (NetworkProviderSettings.class.getName().equals(fragmentName)
+                || WifiP2pSettings.class.getName().equals(fragmentName)
+                || isSavedAccessPointsWifiSettings) {
+            return true;
+        }
+        return false;
+    }
+
+    /* package */ Class<? extends PreferenceFragmentCompat> getNetworkProviderSettingsClass() {
+        return NetworkProviderSettings.class;
+    }
+
+    @Override
+    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+        final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+        super.onApplyThemeResource(theme, new_resid, first);
+    }
+}
diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
index 5c7c54e..66575c3 100644
--- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
+++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
@@ -72,9 +72,13 @@
     // DNS_MODE -> RadioButton id
     private static final Map<Integer, Integer> PRIVATE_DNS_MAP;
 
+    // Only used in Settings, update on additions to ConnectivitySettingsUtils
+    private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4;
+
     static {
         PRIVATE_DNS_MAP = new HashMap<>();
         PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OFF, R.id.private_dns_mode_off);
+        PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_CLOUDFLARE, R.id.private_dns_mode_cloudflare);
         PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OPPORTUNISTIC, R.id.private_dns_mode_opportunistic);
         PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, R.id.private_dns_mode_provider);
     }
@@ -144,6 +148,15 @@
         final ContentResolver contentResolver = context.getContentResolver();
 
         mMode = ConnectivitySettingsManager.getPrivateDnsMode(context);
+        if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
+            final String privateDnsHostname =
+                    ConnectivitySettingsManager.getPrivateDnsHostname(context);
+            final String cloudflareHostname =
+                    context.getString(R.string.private_dns_hostname_cloudflare);
+            if (privateDnsHostname.equals(cloudflareHostname)) {
+                mMode = PRIVATE_DNS_MODE_CLOUDFLARE;
+            }
+        }
 
         mEditText = view.findViewById(R.id.private_dns_mode_provider_hostname);
         mEditText.addTextChangedListener(this);
@@ -156,6 +169,9 @@
         // Initial radio button text
         final RadioButton offRadioButton = view.findViewById(R.id.private_dns_mode_off);
         offRadioButton.setText(R.string.private_dns_mode_off);
+        final RadioButton cloudflareRadioButton =
+                view.findViewById(R.id.private_dns_mode_cloudflare);
+        cloudflareRadioButton.setText(R.string.private_dns_mode_cloudflare);
         final RadioButton opportunisticRadioButton =
                 view.findViewById(R.id.private_dns_mode_opportunistic);
         opportunisticRadioButton.setText(R.string.private_dns_mode_opportunistic);
@@ -181,15 +197,21 @@
     public void onClick(DialogInterface dialog, int which) {
         if (which == DialogInterface.BUTTON_POSITIVE) {
             final Context context = getContext();
+            int modeToSet = mMode;
             if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
                 // Only clickable if hostname is valid, so we could save it safely
                 ConnectivitySettingsManager.setPrivateDnsHostname(context,
                         mEditText.getText().toString());
+            } else if (mMode == PRIVATE_DNS_MODE_CLOUDFLARE) {
+                final String cloudflareHostname =
+                        context.getString(R.string.private_dns_hostname_cloudflare);
+                ConnectivitySettingsManager.setPrivateDnsHostname(context, cloudflareHostname);
+                modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
             }
 
             FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
-                    SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode);
-            ConnectivitySettingsManager.setPrivateDnsMode(context, mMode);
+                    SettingsEnums.ACTION_PRIVATE_DNS_MODE, modeToSet);
+            ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet);
         }
     }
 
@@ -197,6 +219,8 @@
     public void onCheckedChanged(RadioGroup group, int checkedId) {
         if (checkedId == R.id.private_dns_mode_off) {
             mMode = PRIVATE_DNS_MODE_OFF;
+        } else if (checkedId == R.id.private_dns_mode_cloudflare) {
+            mMode = PRIVATE_DNS_MODE_CLOUDFLARE;
         } else if (checkedId == R.id.private_dns_mode_opportunistic) {
             mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC;
         } else if (checkedId == R.id.private_dns_mode_provider) {
diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java
index ed6f9ed..ca6a434 100644
--- a/src/com/android/settings/network/PrivateDnsPreferenceController.java
+++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java
@@ -65,6 +65,9 @@
         Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER),
     };
 
+    // Only used in Settings, update on additions to ConnectivitySettingsUtils
+    private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4;
+
     private final Handler mHandler;
     private final ContentObserver mSettingsObserver;
     private final ConnectivityManager mConnectivityManager;
@@ -89,7 +92,7 @@
             return UNSUPPORTED_ON_DEVICE;
         }
         final UserManager userManager = mContext.getSystemService(UserManager.class);
-        if (userManager.isGuestUser()) return DISABLED_FOR_USER;
+        if (!userManager.isAdminUser()) return DISABLED_FOR_USER;
         return AVAILABLE;
     }
 
@@ -129,13 +132,22 @@
         switch (mode) {
             case PRIVATE_DNS_MODE_OFF:
                 return res.getString(R.string.private_dns_mode_off);
+            case PRIVATE_DNS_MODE_CLOUDFLARE:
             case PRIVATE_DNS_MODE_OPPORTUNISTIC:
                 return dnsesResolved ? res.getString(R.string.private_dns_mode_on)
                         : res.getString(R.string.private_dns_mode_opportunistic);
             case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME:
-                return dnsesResolved
-                        ? PrivateDnsModeDialogPreference.getHostnameFromSettings(cr)
-                        : res.getString(R.string.private_dns_mode_provider_failure);
+                if (!dnsesResolved) {
+                    return res.getString(R.string.private_dns_mode_provider_failure);
+                }
+                final String privateDnsHostname =
+                        ConnectivitySettingsManager.getPrivateDnsHostname(mContext);
+                final String cloudflareHostname =
+                        res.getString(R.string.private_dns_hostname_cloudflare);
+                if (privateDnsHostname.equals(cloudflareHostname)) {
+                    return res.getString(R.string.private_dns_mode_cloudflare);
+                }
+                return PrivateDnsModeDialogPreference.getHostnameFromSettings(cr);
         }
         return "";
     }
diff --git a/src/com/android/settings/network/telephony/NetworkScanHelper.java b/src/com/android/settings/network/telephony/NetworkScanHelper.java
index e0a9c5e..1961329 100644
--- a/src/com/android/settings/network/telephony/NetworkScanHelper.java
+++ b/src/com/android/settings/network/telephony/NetworkScanHelper.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.telephony;
 
 import android.annotation.IntDef;
+import android.content.Context;
 import android.telephony.AccessNetworkConstants.AccessNetworkType;
 import android.telephony.CellInfo;
 import android.telephony.NetworkScan;
@@ -31,6 +32,8 @@
 
 import com.android.internal.telephony.CellNetworkScanResult;
 
+import com.android.settings.R;
+
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -129,6 +132,7 @@
     private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
     private final Executor mExecutor;
 
+    private int mMaxSearchTimeSec = MAX_SEARCH_TIME_SEC;
     private NetworkScan mNetworkScanRequester;
 
     /** Callbacks for sync network scan */
@@ -141,6 +145,13 @@
         mExecutor = executor;
     }
 
+    public NetworkScanHelper(Context context, TelephonyManager tm, NetworkScanCallback callback,
+            Executor executor) {
+        this(tm, callback, executor);
+        mMaxSearchTimeSec = context.getResources().getInteger(
+                R.integer.config_network_scan_helper_max_search_time_sec);
+    }
+
     @VisibleForTesting
     NetworkScanRequest createNetworkScanForPreferredAccessNetworks() {
         long networkTypeBitmap3gpp = mTelephonyManager.getPreferredNetworkTypeBitmask()
@@ -183,7 +194,7 @@
                 radioAccessSpecifiers.toArray(
                         new RadioAccessSpecifier[radioAccessSpecifiers.size()]),
                 SEARCH_PERIODICITY_SEC,
-                MAX_SEARCH_TIME_SEC,
+                mMaxSearchTimeSec,
                 INCREMENTAL_RESULTS,
                 INCREMENTAL_RESULTS_PERIODICITY_SEC,
                 null /* List of PLMN ids (MCC-MNC) */);
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index b26e783..64939dc 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -111,7 +111,7 @@
         mSelectedPreference = null;
         mTelephonyManager = getTelephonyManager(getContext(), mSubId);
         mNetworkScanHelper = new NetworkScanHelper(
-                mTelephonyManager, mCallback, mNetworkScanExecutor);
+                getContext(), mTelephonyManager, mCallback, mNetworkScanExecutor);
         PersistableBundle bundle = getCarrierConfigManager(getContext())
                 .getConfigForSubId(mSubId);
         if (bundle != null) {
diff --git a/src/com/android/settings/notification/IncreasingRingPreferenceController.java b/src/com/android/settings/notification/IncreasingRingPreferenceController.java
new file mode 100644
index 0000000..2152451
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingPreferenceController.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+import com.android.settings.Utils;
+import com.android.settings.core.BasePreferenceController;
+
+public class IncreasingRingPreferenceController extends BasePreferenceController {
+    private static final String KEY_INCREASING_RING = "increasing_ring";
+
+    public IncreasingRingPreferenceController(Context context) {
+        super(context, KEY_INCREASING_RING);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Utils.isVoiceCapable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/notification/IncreasingRingVolumePreference.java b/src/com/android/settings/notification/IncreasingRingVolumePreference.java
new file mode 100644
index 0000000..efa2614
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingVolumePreference.java
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2014 CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.provider.Settings;
+import android.text.format.Formatter;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+import androidx.core.content.res.TypedArrayUtils;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+import lineageos.providers.LineageSettings;
+
+public class IncreasingRingVolumePreference extends Preference
+        implements Handler.Callback, SeekBar.OnSeekBarChangeListener {
+    private static final String TAG = "IncreasingRingMinVolumePreference";
+
+    public interface Callback {
+        void onSampleStarting(IncreasingRingVolumePreference pref);
+    }
+
+    private SeekBar mStartVolumeSeekBar;
+    private SeekBar mRampUpTimeSeekBar;
+    private TextView mRampUpTimeValue;
+
+    private Ringtone mRingtone;
+    private Callback mCallback;
+
+    private Handler mHandler;
+    private final Handler mMainHandler = new Handler(this);
+
+    private static final int MSG_START_SAMPLE = 1;
+    private static final int MSG_STOP_SAMPLE = 2;
+    private static final int MSG_INIT_SAMPLE = 3;
+    private static final int MSG_SET_VOLUME = 4;
+    private static final int CHECK_RINGTONE_PLAYBACK_DELAY_MS = 1000;
+
+    public IncreasingRingVolumePreference(Context context) {
+        this(context, null);
+    }
+
+    public IncreasingRingVolumePreference(Context context, AttributeSet attrs) {
+        this(context, attrs, TypedArrayUtils.getAttr(context,
+                R.attr.preferenceStyle, android.R.attr.preferenceStyle));
+    }
+
+    public IncreasingRingVolumePreference(Context context, AttributeSet attrs,
+            int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public IncreasingRingVolumePreference(Context context, AttributeSet attrs,
+            int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        setLayoutResource(R.layout.preference_increasing_ring);
+        initHandler();
+    }
+
+    public void setCallback(Callback callback) {
+        mCallback = callback;
+    }
+
+    public void onActivityResume() {
+        initHandler();
+    }
+
+    public void onActivityStop() {
+        if (mHandler != null) {
+            postStopSample();
+            mHandler.getLooper().quitSafely();
+            mHandler = null;
+        }
+    }
+
+    @Override
+    public boolean handleMessage(Message msg) {
+        switch (msg.what) {
+            case MSG_START_SAMPLE:
+                onStartSample((float) msg.arg1 / 1000F);
+                break;
+            case MSG_STOP_SAMPLE:
+                onStopSample();
+                break;
+            case MSG_INIT_SAMPLE:
+                onInitSample();
+                break;
+            case MSG_SET_VOLUME:
+                onSetVolume((float) msg.arg1 / 1000F);
+                break;
+        }
+        return true;
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        initHandler();
+
+        final SeekBar seekBar = (SeekBar) holder.findViewById(R.id.start_volume);
+        if (seekBar == mStartVolumeSeekBar) return;
+
+        mStartVolumeSeekBar = seekBar;
+        mRampUpTimeSeekBar = (SeekBar) holder.findViewById(R.id.ramp_up_time);
+        mRampUpTimeValue = (TextView) holder.findViewById(R.id.ramp_up_time_value);
+
+        final ContentResolver cr = getContext().getContentResolver();
+        float startVolume = LineageSettings.System.getFloat(cr,
+                LineageSettings.System.INCREASING_RING_START_VOLUME, 0.1f);
+        int rampUpTime = LineageSettings.System.getInt(cr,
+                LineageSettings.System.INCREASING_RING_RAMP_UP_TIME, 10);
+
+        mStartVolumeSeekBar.setProgress(Math.round(startVolume * 1000F));
+        mStartVolumeSeekBar.setOnSeekBarChangeListener(this);
+        mRampUpTimeSeekBar.setOnSeekBarChangeListener(this);
+        mRampUpTimeSeekBar.setProgress((rampUpTime / 5) - 1);
+        mRampUpTimeValue.setText(
+                Formatter.formatShortElapsedTime(getContext(), rampUpTime * 1000));
+    }
+
+    @Override
+    public void onStartTrackingTouch(SeekBar seekBar) {
+    }
+
+    @Override
+    public void onStopTrackingTouch(SeekBar seekBar) {
+        if (seekBar == mStartVolumeSeekBar) {
+            postStartSample(seekBar.getProgress());
+        }
+    }
+
+    @Override
+    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
+        ContentResolver cr = getContext().getContentResolver();
+        if (fromTouch && seekBar == mStartVolumeSeekBar) {
+            LineageSettings.System.putFloat(cr,
+                    LineageSettings.System.INCREASING_RING_START_VOLUME, (float) progress / 1000F);
+        } else if (seekBar == mRampUpTimeSeekBar) {
+            int seconds = (progress + 1) * 5;
+            mRampUpTimeValue.setText(
+                    Formatter.formatShortElapsedTime(getContext(), seconds * 1000));
+            if (fromTouch) {
+                LineageSettings.System.putInt(cr,
+                        LineageSettings.System.INCREASING_RING_RAMP_UP_TIME, seconds);
+            }
+        }
+    }
+
+    private void initHandler() {
+        if (mHandler != null) return;
+
+        HandlerThread thread = new HandlerThread(TAG + ".CallbackHandler");
+        thread.start();
+
+        mHandler = new Handler(thread.getLooper(), this);
+        mHandler.sendEmptyMessage(MSG_INIT_SAMPLE);
+    }
+
+    private void onInitSample() {
+        mRingtone = RingtoneManager.getRingtone(getContext(),
+                Settings.System.DEFAULT_RINGTONE_URI);
+        if (mRingtone != null) {
+            mRingtone.setStreamType(AudioManager.STREAM_RING);
+            mRingtone.setAudioAttributes(
+                    new AudioAttributes.Builder(mRingtone.getAudioAttributes())
+                            .setFlags(AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY |
+                                    AudioAttributes.FLAG_BYPASS_MUTE)
+                            .build());
+        }
+    }
+
+    private void postStartSample(int progress) {
+        boolean playing = isSamplePlaying();
+        mHandler.removeMessages(MSG_START_SAMPLE);
+        mHandler.removeMessages(MSG_SET_VOLUME);
+        mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_START_SAMPLE, progress, 0),
+                playing ? CHECK_RINGTONE_PLAYBACK_DELAY_MS : 0);
+        if (playing) {
+            mHandler.sendMessage(mHandler.obtainMessage(MSG_SET_VOLUME, progress, 0));
+        }
+    }
+
+    private void onStartSample(float volume) {
+        if (mRingtone == null) {
+            return;
+        }
+        if (!isSamplePlaying()) {
+            if (mCallback != null) {
+                mCallback.onSampleStarting(this);
+            }
+            try {
+                mRingtone.play();
+            } catch (Throwable e) {
+                Log.w(TAG, "Error playing ringtone", e);
+            }
+        }
+        mRingtone.setVolume(volume);
+    }
+
+    private void onSetVolume(float volume) {
+        if (mRingtone != null) {
+            mRingtone.setVolume(volume);
+        }
+    }
+
+    private boolean isSamplePlaying() {
+        return mRingtone != null && mRingtone.isPlaying();
+    }
+
+    public void stopSample() {
+        if (mHandler != null) {
+            postStopSample();
+        }
+    }
+
+    private void postStopSample() {
+        // remove pending delayed start messages
+        mHandler.removeMessages(MSG_START_SAMPLE);
+        mHandler.removeMessages(MSG_STOP_SAMPLE);
+        mHandler.sendEmptyMessage(MSG_STOP_SAMPLE);
+    }
+
+    private void onStopSample() {
+        if (mRingtone != null) {
+            mRingtone.stop();
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java b/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java
new file mode 100644
index 0000000..78da248
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.Utils;
+import com.android.settings.slices.SliceData;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Base class for preference controller that handles VolumeSeekBarPreference
+ */
+public class IncreasingRingVolumePreferenceController
+        extends AdjustVolumeRestrictedPreferenceController
+        implements LifecycleObserver, OnResume, OnStop {
+
+    private static final String KEY_INCREASING_RING_VOLUME = "increasing_ring_volume";
+
+    private IncreasingRingVolumePreference mPreference;
+    private IncreasingRingVolumePreference.Callback mCallback;
+    private AudioHelper mHelper;
+
+    public IncreasingRingVolumePreferenceController(Context context) {
+        super(context, KEY_INCREASING_RING_VOLUME);
+        mHelper = new AudioHelper(context);
+    }
+
+    public void setCallback(IncreasingRingVolumePreference.Callback callback) {
+        mCallback = callback;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        if (isAvailable()) {
+            mPreference = screen.findPreference(getPreferenceKey());
+            mPreference.setCallback(mCallback);
+        }
+    }
+
+    @Override
+    public void onResume() {
+        if (mPreference != null) {
+            mPreference.onActivityResume();
+        }
+    }
+
+    @Override
+    public void onStop() {
+        if (mPreference != null) {
+            mPreference.onActivityStop();
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_INCREASING_RING_VOLUME;
+    }
+
+    @Override
+    public int getSliderPosition() {
+        return 0;
+    }
+
+    @Override
+    public boolean setSliderPosition(int position) {
+        return false;
+    }
+
+    @Override
+    public int getMin() {
+        return 0;
+    }
+
+    @Override
+    public int getMax() {
+        return 0;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume() ?
+                AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public int getSliceType() {
+        return SliceData.SliceType.INTENT;
+    }
+}
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 68f5d08..9a35695 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -102,6 +102,7 @@
         row.userId = UserHandle.getUserId(row.uid);
         row.blockedChannelCount = getBlockedChannelCount(row.pkg, row.uid);
         row.channelCount = getChannelCount(row.pkg, row.uid);
+        row.soundTimeout = getNotificationSoundTimeout(row.pkg, row.uid);
         recordAggregatedUsageEvents(context, row);
         return row;
     }
@@ -659,6 +660,25 @@
         sINM = inm;
     }
 
+    public long getNotificationSoundTimeout(String pkg, int uid) {
+        try {
+            return sINM.getNotificationSoundTimeout(pkg, uid);
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return 0;
+        }
+    }
+
+    public boolean setNotificationSoundTimeout(String pkg, int uid, long timeout) {
+        try {
+            sINM.setNotificationSoundTimeout(pkg, uid, timeout);
+            return true;
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return false;
+        }
+    }
+
     /**
      * NotificationsSentState contains how often an app sends notifications and how recently it sent
      * one.
@@ -692,6 +712,7 @@
         public int userId;
         public int blockedChannelCount;
         public int channelCount;
+        public long soundTimeout;
         public Map<String, NotificationsSentState> sentByChannel;
         public NotificationsSentState sentByApp;
     }
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 2cc1b1c..6586688 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -63,6 +63,8 @@
 
     @VisibleForTesting
     final VolumePreferenceCallback mVolumeCallback = new VolumePreferenceCallback();
+    private final IncreasingRingVolumePreferenceCallback mIncreasingRingVolumeCallback =
+            new IncreasingRingVolumePreferenceCallback();
     @VisibleForTesting
     final Handler mHandler = new Handler(Looper.getMainLooper()) {
         @Override
@@ -70,6 +72,7 @@
             switch (msg.what) {
                 case STOP_SAMPLE:
                     mVolumeCallback.stopSample();
+                    mIncreasingRingVolumeCallback.stopSample();
                     break;
             }
         }
@@ -113,6 +116,7 @@
     public void onPause() {
         super.onPause();
         mVolumeCallback.stopSample();
+        mIncreasingRingVolumeCallback.stopSample();
     }
 
     @Override
@@ -201,6 +205,11 @@
             controller.setCallback(mVolumeCallback);
             getSettingsLifecycle().addObserver(controller);
         }
+
+        IncreasingRingVolumePreferenceController irvpc =
+                use(IncreasingRingVolumePreferenceController.class);
+        irvpc.setCallback(mIncreasingRingVolumeCallback);
+        getLifecycle().addObserver(irvpc);
     }
 
     // === Volumes ===
@@ -210,6 +219,7 @@
 
         @Override
         public void onSampleStarting(SeekBarVolumizer sbv) {
+            mIncreasingRingVolumeCallback.stopSample();
             if (mCurrent != null) {
                 mHandler.removeMessages(STOP_SAMPLE);
                 mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
@@ -240,6 +250,26 @@
         }
     }
 
+    final class IncreasingRingVolumePreferenceCallback implements
+            IncreasingRingVolumePreference.Callback {
+        private IncreasingRingVolumePreference mPlayingPref;
+
+        @Override
+        public void onSampleStarting(IncreasingRingVolumePreference pref) {
+            mPlayingPref = pref;
+            mVolumeCallback.stopSample();
+            mHandler.removeMessages(STOP_SAMPLE);
+            mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
+        }
+
+        public void stopSample() {
+            if (mPlayingPref != null) {
+                mPlayingPref.stopSample();
+                mPlayingPref = null;
+            }
+        }
+    };
+
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
             SoundSettings fragment, Lifecycle lifecycle) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
@@ -250,6 +280,8 @@
         controllers.add(new PhoneRingtonePreferenceController(context));
         controllers.add(new AlarmRingtonePreferenceController(context));
         controllers.add(new NotificationRingtonePreferenceController(context));
+        controllers.add(new IncreasingRingPreferenceController(context));
+        controllers.add(new IncreasingRingVolumePreferenceController(context));
 
         // === Other Sound Settings ===
         final DialPadTonePreferenceController dialPadTonePreferenceController =
diff --git a/src/com/android/settings/notification/VibrateIconPreferenceController.java b/src/com/android/settings/notification/VibrateIconPreferenceController.java
index d772b47..e538dd1 100644
--- a/src/com/android/settings/notification/VibrateIconPreferenceController.java
+++ b/src/com/android/settings/notification/VibrateIconPreferenceController.java
@@ -40,6 +40,6 @@
 
     @Override
     public boolean isAvailable() {
-        return mHasVibrator;
+        return false;
     }
 }
diff --git a/src/com/android/settings/notification/app/AppNotificationSettings.java b/src/com/android/settings/notification/app/AppNotificationSettings.java
index ebcd261..ff104e9 100644
--- a/src/com/android/settings/notification/app/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/app/AppNotificationSettings.java
@@ -82,6 +82,7 @@
         mControllers.add(new HeaderPreferenceController(context, this));
         mControllers.add(new BlockPreferenceController(context, mDependentFieldListener, mBackend));
         mControllers.add(new BadgePreferenceController(context, mBackend));
+        mControllers.add(new SoundTimeoutPreferenceController(context, mBackend));
         mControllers.add(new AllowSoundPreferenceController(
                 context, mDependentFieldListener, mBackend));
         mControllers.add(new ImportancePreferenceController(
diff --git a/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java b/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java
new file mode 100644
index 0000000..1fb9a21
--- /dev/null
+++ b/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.app;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+
+import com.android.settings.RestrictedListPreference;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.notification.NotificationBackend;
+
+public class SoundTimeoutPreferenceController extends NotificationPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+    private static final String TAG = "SoundTimeoutPreferenceController";
+    private static final String KEY_SOUND_TIMEOUT = "sound_timeout";
+
+    public SoundTimeoutPreferenceController(Context context,
+            NotificationBackend backend) {
+        super(context, backend);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_SOUND_TIMEOUT;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!super.isAvailable()) {
+            return false;
+        }
+        if (mAppRow == null) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    boolean isIncludedInFilter() {
+        return false;
+    }
+
+    public void updateState(Preference preference) {
+        if (mAppRow != null) {
+            RestrictedListPreference pref = (RestrictedListPreference) preference;
+            pref.setDisabledByAdmin(mAdmin);
+
+            pref.setSummary("%s");
+            pref.setValue(Long.toString(mAppRow.soundTimeout));
+        }
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (mAppRow != null) {
+            mAppRow.soundTimeout = Long.valueOf((String) newValue);
+            mBackend.setNotificationSoundTimeout(mAppRow.pkg, mAppRow.uid, mAppRow.soundTimeout);
+        }
+        return true;
+    }
+
+}
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index c0342d1..e545680 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -105,7 +105,8 @@
         private final Intent mIntent;
 
         public IntentBuilder(Context context) {
-            mIntent = new Intent(context, ChooseLockPattern.class);
+            mIntent = new Intent(context, ChooseLockPatternSize.class);
+            mIntent.putExtra("className", ChooseLockPattern.class.getName());
             mIntent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false);
             mIntent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, false);
         }
@@ -214,19 +215,14 @@
         protected FooterButton mSkipOrClearButton;
         protected FooterButton mNextButton;
         @VisibleForTesting protected LockscreenCredential mChosenPattern;
+        private byte mPatternSize = LockPatternUtils.PATTERN_SIZE_DEFAULT;
         private ColorStateList mDefaultHeaderColorList;
         private View mSudContent;
 
         /**
          * The patten used during the help screen to show how to draw a pattern.
          */
-        private final List<LockPatternView.Cell> mAnimatePattern =
-                Collections.unmodifiableList(Lists.newArrayList(
-                        LockPatternView.Cell.of(0, 0),
-                        LockPatternView.Cell.of(0, 1),
-                        LockPatternView.Cell.of(1, 1),
-                        LockPatternView.Cell.of(2, 1)
-                ));
+        private List<LockPatternView.Cell> mAnimatePattern;
 
         @Override
         public void onActivityResult(int requestCode, int resultCode,
@@ -276,7 +272,7 @@
                         if (mChosenPattern == null) throw new IllegalStateException(
                                 "null chosen pattern in stage 'need to confirm");
                         try (LockscreenCredential confirmPattern =
-                                LockscreenCredential.createPattern(pattern)) {
+                                LockscreenCredential.createPattern(pattern, mPatternSize)) {
                             if (mChosenPattern.equals(confirmPattern)) {
                                 updateStage(Stage.ChoiceConfirmed);
                             } else {
@@ -287,7 +283,8 @@
                         if (pattern.size() < LockPatternUtils.MIN_LOCK_PATTERN_SIZE) {
                             updateStage(Stage.ChoiceTooShort);
                         } else {
-                            mChosenPattern = LockscreenCredential.createPattern(pattern);
+                            mChosenPattern = LockscreenCredential.createPattern(
+                                    pattern, mPatternSize);
                             updateStage(Stage.FirstChoiceValid);
                         }
                     } else {
@@ -471,7 +468,7 @@
                 w.setBlocking(true);
                 w.setListener(this);
                 w.start(mLockPatternUtils, required, false /* requestGatekeeperPassword */, current,
-                        current, mUserId);
+                        current, mUserId, mPatternSize);
             }
             mForFingerprint = intent.getBooleanExtra(
                     ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
@@ -546,6 +543,16 @@
             mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
                     0);
 
+            mPatternSize = getActivity().getIntent().getByteExtra("pattern_size",
+                    LockPatternUtils.PATTERN_SIZE_DEFAULT);
+            LockPatternView.Cell.updateSize(mPatternSize);
+            mAnimatePattern = Collections.unmodifiableList(Lists.newArrayList(
+                    LockPatternView.Cell.of(0, 0, mPatternSize),
+                    LockPatternView.Cell.of(0, 1, mPatternSize),
+                    LockPatternView.Cell.of(1, 1, mPatternSize),
+                    LockPatternView.Cell.of(2, 1, mPatternSize)
+                    ));
+
             return layout;
         }
 
@@ -559,6 +566,8 @@
             mLockPatternView = (LockPatternView) view.findViewById(R.id.lockPattern);
             mLockPatternView.setOnPatternListener(mChooseNewLockPatternListener);
             mLockPatternView.setFadePattern(false);
+            mLockPatternView.setLockPatternUtils(mLockPatternUtils);
+            mLockPatternView.setLockPatternSize(mPatternSize);
 
             mFooterText = (TextView) view.findViewById(R.id.footerText);
 
@@ -602,6 +611,9 @@
                 // restore from previous state
                 mChosenPattern = savedInstanceState.getParcelable(KEY_PATTERN_CHOICE);
                 mCurrentCredential = savedInstanceState.getParcelable(KEY_CURRENT_PATTERN);
+                mLockPatternView.setPattern(DisplayMode.Correct,
+                        LockPatternUtils.byteArrayToPattern(
+                                mChosenPattern.getCredential(), mPatternSize));
 
                 updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]);
 
@@ -861,7 +873,8 @@
                 }
             }
             mSaveAndFinishWorker.start(mLockPatternUtils, required,
-                    mRequestGatekeeperPassword, mChosenPattern, mCurrentCredential, mUserId);
+                    mRequestGatekeeperPassword, mChosenPattern, mCurrentCredential, mUserId,
+                    mPatternSize);
         }
 
         @Override
@@ -890,16 +903,18 @@
         private LockscreenCredential mChosenPattern;
         private LockscreenCredential mCurrentCredential;
         private boolean mLockVirgin;
+        private byte mPatternSize;
 
         public void start(LockPatternUtils utils, boolean credentialRequired,
                 boolean requestGatekeeperPassword, LockscreenCredential chosenPattern,
-                LockscreenCredential currentCredential, int userId) {
+                LockscreenCredential currentCredential, int userId, byte patternSize) {
             prepare(utils, credentialRequired, requestGatekeeperPassword, userId);
 
             mCurrentCredential = currentCredential != null ? currentCredential
                     : LockscreenCredential.createNone();
             mChosenPattern = chosenPattern;
             mUserId = userId;
+            mPatternSize = patternSize;
 
             mLockVirgin = !mUtils.isPatternEverChosen(mUserId);
 
@@ -909,6 +924,7 @@
         @Override
         protected Pair<Boolean, Intent> saveAndVerifyInBackground() {
             final int userId = mUserId;
+            mUtils.setLockPatternSize(mPatternSize, userId);
             final boolean success = mUtils.setLockCredential(mChosenPattern, mCurrentCredential,
                     userId);
             if (success) {
diff --git a/src/com/android/settings/password/ChooseLockPatternSize.java b/src/com/android/settings/password/ChooseLockPatternSize.java
new file mode 100644
index 0000000..0db35ef
--- /dev/null
+++ b/src/com/android/settings/password/ChooseLockPatternSize.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2012-2013 The CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.password;
+
+import android.content.Intent;
+import android.content.res.Resources.Theme;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.preference.Preference;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.internal.widget.LockscreenCredential;
+import com.android.settings.EncryptionInterstitial;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.utils.SettingsDividerItemDecoration;
+
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
+import org.lineageos.internal.logging.LineageMetricsLogger;
+
+public class ChooseLockPatternSize extends SettingsActivity {
+
+    @Override
+    public Intent getIntent() {
+        Intent modIntent = new Intent(super.getIntent());
+        modIntent.putExtra(EXTRA_SHOW_FRAGMENT, ChooseLockPatternSizeFragment.class.getName());
+        return modIntent;
+    }
+
+    @Override
+    protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(this, getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
+    @Override
+    protected boolean isValidFragment(String fragmentName) {
+        if (ChooseLockPatternSizeFragment.class.getName().equals(fragmentName)) return true;
+        return false;
+    }
+
+    @Override
+    protected boolean isToolbarEnabled() {
+        return false;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        findViewById(R.id.content_parent).setFitsSystemWindows(false);
+    }
+
+    public static class ChooseLockPatternSizeFragment extends SettingsPreferenceFragment {
+        @Override
+        public void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            if (!(getActivity() instanceof ChooseLockPatternSize)) {
+                throw new SecurityException("Fragment contained in wrong activity");
+            }
+            addPreferencesFromResource(R.xml.security_settings_pattern_size);
+        }
+
+        @Override
+        public boolean onPreferenceTreeClick(Preference preference) {
+            final String key = preference.getKey();
+
+            byte patternSize;
+            if ("lock_pattern_size_4".equals(key)) {
+                patternSize = 4;
+            } else if ("lock_pattern_size_5".equals(key)) {
+                patternSize = 5;
+            } else if ("lock_pattern_size_6".equals(key)) {
+                patternSize = 6;
+            } else {
+                patternSize = 3;
+            }
+
+            Bundle extras = getActivity().getIntent().getExtras();
+            Intent intent = new Intent();
+            intent.setClassName(getActivity(), extras.getString("className"));
+            intent.putExtras(extras);
+            intent.putExtra("pattern_size", patternSize);
+            intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+            startActivity(intent);
+
+            finish();
+            return true;
+        }
+
+        @Override
+        public void onViewCreated(View view, Bundle savedInstanceState) {
+            super.onViewCreated(view, savedInstanceState);
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+            layout.setDividerItemDecoration(new SettingsDividerItemDecoration(getContext()));
+
+            layout.setIcon(getContext().getDrawable(R.drawable.ic_lock));
+
+            if (getActivity() != null) {
+                getActivity().setTitle(R.string.lock_settings_picker_pattern_size_message);
+            }
+
+            layout.setHeaderText(R.string.lock_settings_picker_pattern_size_message);
+
+            // Use the dividers in SetupWizardRecyclerLayout. Suppress the dividers in
+            // PreferenceFragment.
+            setDivider(null);
+        }
+
+        @Override
+        public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
+                Bundle savedInstanceState) {
+            GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
+            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        }
+
+        @Override
+        public int getMetricsCategory() {
+            return LineageMetricsLogger.CHOOSE_LOCK_PATTERN_SIZE;
+        }
+    }
+}
diff --git a/src/com/android/settings/password/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java
index e4d52ba..62c470d 100644
--- a/src/com/android/settings/password/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java
@@ -313,7 +313,9 @@
         switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
             case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                 launched = launchConfirmationActivity(request, title, header, description,
-                        returnCredentials || forceVerifyPath
+                        userId == LockPatternUtils.USER_FRP
+                                ? ChooseLockPatternSize.class
+                                : returnCredentials || forceVerifyPath
                                 ? ConfirmLockPattern.InternalActivity.class
                                 : ConfirmLockPattern.class, returnCredentials, external,
                                 forceVerifyPath, userId, alternateButton, allowAnyUser,
@@ -362,6 +364,9 @@
         intent.setClassName(SETTINGS_PACKAGE_NAME, activityClass.getName());
         intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
                 SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
+        if (userId == LockPatternUtils.USER_FRP) {
+            intent.putExtra("className", ConfirmLockPattern.class.getName());
+        }
 
         Intent inIntent = mFragment != null ? mFragment.getActivity().getIntent() :
                 mActivity.getIntent();
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index b4f0aa3..be39e70 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -110,6 +110,7 @@
         private DisappearAnimationUtils mDisappearAnimationUtils;
 
         private boolean mIsManagedProfile;
+        private byte mPatternSize;
 
         // required constructor for fragments
         public ConfirmLockPatternFragment() {
@@ -135,6 +136,7 @@
             mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
                     0);
             mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mEffectiveUserId);
+            mPatternSize = mLockPatternUtils.getLockPatternSize(mEffectiveUserId);
 
             // make it so unhandled touch events within the unlock screen go to the
             // lock pattern view.
@@ -148,6 +150,7 @@
                         ConfirmDeviceCredentialBaseFragment.HEADER_TEXT);
                 mDetailsText = intent.getCharSequenceExtra(
                         ConfirmDeviceCredentialBaseFragment.DETAILS_TEXT);
+                mPatternSize = intent.getByteExtra("pattern_size", mPatternSize);
             }
             if (TextUtils.isEmpty(mHeaderText) && mIsManagedProfile) {
                 mHeaderText = mDevicePolicyManager.getOrganizationNameForUser(mUserId);
@@ -155,6 +158,7 @@
 
             mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled(
                     mEffectiveUserId));
+            mLockPatternView.setLockPatternSize(mPatternSize);
             mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener);
             mLockPatternView.setOnTouchListener((v, event) -> {
                 if (event.getAction() == MotionEvent.ACTION_DOWN) {
@@ -452,7 +456,8 @@
 
                 mLockPatternView.setEnabled(false);
 
-                final LockscreenCredential credential = LockscreenCredential.createPattern(pattern);
+                final LockscreenCredential credential = LockscreenCredential.createPattern(pattern,
+                        mPatternSize);
                 // TODO(b/161956762): Sanitize this
                 Intent intent = new Intent();
                 if (mReturnGatekeeperPassword) {
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index 09ecda4..8a60faf 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -42,7 +42,8 @@
 public class SetupChooseLockPattern extends ChooseLockPattern {
 
     public static Intent modifyIntentForSetup(Context context, Intent chooseLockPatternIntent) {
-        chooseLockPatternIntent.setClass(context, SetupChooseLockPattern.class);
+        chooseLockPatternIntent.setClass(context, ChooseLockPatternSize.class);
+        chooseLockPatternIntent.putExtra("className", SetupChooseLockPattern.class.getName());
         return chooseLockPatternIntent;
     }
 
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index 2e4a1f2..cbd7edf 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -37,6 +37,7 @@
 import com.android.settings.display.AmbientDisplayNotificationsPreferenceController;
 import com.android.settings.gestures.DoubleTapScreenPreferenceController;
 import com.android.settings.gestures.PickupGesturePreferenceController;
+import com.android.settings.gestures.ScreenOffUdfpsPreferenceController;
 import com.android.settings.notification.LockScreenNotificationPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.security.screenlock.LockScreenPreferenceController;
@@ -113,6 +114,7 @@
         use(AmbientDisplayNotificationsPreferenceController.class).setConfig(getConfig(context));
         use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
         use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
+        use(ScreenOffUdfpsPreferenceController.class).setConfig(getConfig(context));
 
         mControlsContentObserver = new ContentObserver(
                 new Handler(Looper.getMainLooper())) {
diff --git a/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java b/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java
new file mode 100644
index 0000000..5ec9e3c
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public abstract class AbstractPatternSwitchPreferenceController
+        extends AbstractPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+    private final String mKey;
+    private final int mUserId;
+    private final LockPatternUtils mLockPatternUtils;
+
+    public AbstractPatternSwitchPreferenceController(Context context, String key,
+            int userId, LockPatternUtils lockPatternUtils) {
+        super(context);
+        mKey = key;
+        mUserId = userId;
+        mLockPatternUtils = lockPatternUtils;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return isPatternLock();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return mKey;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        ((TwoStatePreference) preference).setChecked(isEnabled(mLockPatternUtils, mUserId));
+    }
+
+    private boolean isPatternLock() {
+        return mLockPatternUtils.isSecure(mUserId)
+                && mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)
+                == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        setEnabled(mLockPatternUtils, mUserId, (Boolean) newValue);
+        return true;
+    }
+
+    protected abstract boolean isEnabled(LockPatternUtils utils, int userId);
+    protected abstract void setEnabled(LockPatternUtils utils, int userId, boolean enabled);
+}
diff --git a/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java
new file mode 100644
index 0000000..8da044d
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.content.Context;
+
+import com.android.internal.widget.LockPatternUtils;
+
+public class PatternDotsVisiblePreferenceController
+        extends AbstractPatternSwitchPreferenceController {
+    private static final String PREF_KEY = "visibledots";
+
+    public PatternDotsVisiblePreferenceController(Context context, int userId,
+            LockPatternUtils lockPatternUtils) {
+        super(context, PREF_KEY, userId, lockPatternUtils);
+    }
+
+    @Override
+    protected boolean isEnabled(LockPatternUtils utils, int userId) {
+        return utils.isVisibleDotsEnabled(userId);
+    }
+
+    @Override
+    protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+        utils.setVisibleDotsEnabled(enabled, userId);
+    }
+}
diff --git a/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java
new file mode 100644
index 0000000..b9a18c1
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.content.Context;
+
+import com.android.internal.widget.LockPatternUtils;
+
+public class PatternErrorVisiblePreferenceController
+        extends AbstractPatternSwitchPreferenceController {
+    private static final String PREF_KEY = "visible_error_pattern";
+
+    public PatternErrorVisiblePreferenceController(Context context, int userId,
+            LockPatternUtils lockPatternUtils) {
+        super(context, PREF_KEY, userId, lockPatternUtils);
+    }
+
+    @Override
+    protected boolean isEnabled(LockPatternUtils utils, int userId) {
+        return utils.isShowErrorPath(userId);
+    }
+
+    @Override
+    protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+        utils.setShowErrorPath(enabled, userId);
+    }
+}
diff --git a/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
index ea3403b..2f8b641 100644
--- a/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
+++ b/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
@@ -18,52 +18,23 @@
 
 import android.content.Context;
 
-import androidx.preference.Preference;
-import androidx.preference.TwoStatePreference;
-
 import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
 
-public class PatternVisiblePreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
-
+public class PatternVisiblePreferenceController extends AbstractPatternSwitchPreferenceController {
     private static final String PREF_KEY = "visiblepattern";
 
-    private final int mUserId;
-    private final LockPatternUtils mLockPatternUtils;
-
     public PatternVisiblePreferenceController(Context context, int userId,
             LockPatternUtils lockPatternUtils) {
-        super(context);
-        mUserId = userId;
-        mLockPatternUtils = lockPatternUtils;
+        super(context, PREF_KEY, userId, lockPatternUtils);
     }
 
     @Override
-    public boolean isAvailable() {
-        return isPatternLock();
+    protected boolean isEnabled(LockPatternUtils utils, int userId) {
+        return utils.isVisiblePatternEnabled(userId);
     }
 
     @Override
-    public String getPreferenceKey() {
-        return PREF_KEY;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        ((TwoStatePreference) preference).setChecked(
-                mLockPatternUtils.isVisiblePatternEnabled(mUserId));
-    }
-
-    private boolean isPatternLock() {
-        return mLockPatternUtils.getCredentialTypeForUser(mUserId)
-                == LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        mLockPatternUtils.setVisiblePatternEnabled((Boolean) newValue, mUserId);
-        return true;
+    protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+        utils.setVisiblePatternEnabled(enabled, userId);
     }
 }
diff --git a/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java b/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java
new file mode 100644
index 0000000..6d7ae8a
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2018 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security.screenlock;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import lineageos.providers.LineageSettings;
+
+public class PinScramblePreferenceController extends AbstractPreferenceController
+        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+    static final String KEY_LOCKSCREEN_SCRAMBLE_PIN_LAYOUT = "lockscreen_scramble_pin_layout";
+
+    private final int mUserId;
+    private final LockPatternUtils mLockPatternUtils;
+
+    public PinScramblePreferenceController(Context context, int userId,
+            LockPatternUtils lockPatternUtils) {
+        super(context);
+        mUserId = userId;
+        mLockPatternUtils = lockPatternUtils;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return isPinLock();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_LOCKSCREEN_SCRAMBLE_PIN_LAYOUT;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        ((TwoStatePreference) preference).setChecked(LineageSettings.System.getInt(
+                mContext.getContentResolver(),
+                LineageSettings.System.LOCKSCREEN_PIN_SCRAMBLE_LAYOUT,
+                0) == 1);
+    }
+
+    private boolean isPinLock() {
+        int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId);
+        boolean hasPin = quality == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC ||
+                quality == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
+        return mLockPatternUtils.isSecure(mUserId) && hasPin;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        LineageSettings.System.putInt(
+                mContext.getContentResolver(),
+                LineageSettings.System.LOCKSCREEN_PIN_SCRAMBLE_LAYOUT,
+                (Boolean) newValue ? 1 : 0);
+        return true;
+    }
+}
diff --git a/src/com/android/settings/security/screenlock/ScreenLockSettings.java b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
index 8c9dacb..ec6f91f 100644
--- a/src/com/android/settings/security/screenlock/ScreenLockSettings.java
+++ b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
@@ -72,12 +72,18 @@
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new PatternVisiblePreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
+        controllers.add(new PatternErrorVisiblePreferenceController(
+                context, MY_USER_ID, lockPatternUtils));
+        controllers.add(new PatternDotsVisiblePreferenceController(
+                context, MY_USER_ID, lockPatternUtils));
         controllers.add(new PinPrivacyPreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
         controllers.add(new PowerButtonInstantLockPreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
         controllers.add(new LockAfterTimeoutPreferenceController(
                 context, MY_USER_ID, lockPatternUtils));
+        controllers.add(new PinScramblePreferenceController(
+                context, MY_USER_ID, lockPatternUtils));
         controllers.add(new OwnerInfoPreferenceController(context, parent));
         return controllers;
     }
diff --git a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
index 89ee19b..17f3fe5 100644
--- a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
+++ b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
@@ -152,7 +152,7 @@
             intent = new Intent();
         }
         intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
-                Intent.ShortcutIconResource.fromContext(mContext, R.mipmap.ic_launcher_settings))
+                Intent.ShortcutIconResource.fromContext(mContext, R.drawable.ic_launcher_settings))
                 .putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent)
                 .putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
 
diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index bf0dfc9..5657416 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -524,25 +524,7 @@
                 PackageManager.FEATURE_IPSEC_TUNNELS)) {
             Log.wtf(TAG, "FEATURE_IPSEC_TUNNELS missing from system");
         }
-        // If the vpn is new or is not already a legacy type,
-        // don't allow the user to set the type to a legacy option.
 
-        // Set the mProfile.type to TYPE_IKEV2_IPSEC_USER_PASS if the VPN not exist
-        if (!mExists) {
-            mProfile.type = VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS;
-        }
-
-        // Remove all types which are legacy types from the typesList
-        if (!VpnProfile.isLegacyType(mProfile.type)) {
-            for (int i = mAllowedTypes.size() - 1; i >= 0; i--) {
-                // This must be removed from back to front in order to ensure index consistency
-                if (VpnProfile.isLegacyType(i)) {
-                    mAllowedTypes.remove(i);
-                }
-            }
-
-            types = mAllowedTypes.toArray(new String[0]);
-        }
         final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                 getContext(), android.R.layout.simple_spinner_item, types);
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index e55ea16..ab13405 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -315,7 +315,7 @@
                         : NOT_HIDDEN_NETWORK);
 
                 final int prefMacValue = WifiPrivacyPreferenceController2
-                        .translateMacRandomizedValueToPrefValue(config.macRandomizationSetting);
+                        .translateMacRandomizedValueToPrefValue(mWifiEntry.getPrivacy());
                 mPrivacySettingsSpinner.setSelection(prefMacValue);
 
                 if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
deleted file mode 100644
index 280b8d4..0000000
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.connecteddevice.usb;
-
-import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
-import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
-
-import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.hardware.usb.UsbManager;
-import android.hardware.usb.UsbPort;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.testutils.DrawableTestHelper;
-import com.android.settingslib.widget.LayoutPreference;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.ArgumentMatcher;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
-public class UsbDetailsHeaderControllerTest {
-
-    private UsbDetailsHeaderController mDetailsHeaderController;
-    private Context mContext;
-    private Lifecycle mLifecycle;
-    private LifecycleOwner mLifecycleOwner;
-    private LayoutPreference mPreference;
-    private PreferenceManager mPreferenceManager;
-    private PreferenceScreen mScreen;
-
-    @Mock
-    private UsbBackend mUsbBackend;
-    @Mock
-    private UsbDetailsFragment mFragment;
-    @Mock
-    private FragmentActivity mActivity;
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private EntityHeaderController mHeaderController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = RuntimeEnvironment.application;
-        mLifecycleOwner = () -> mLifecycle;
-        mLifecycle = new Lifecycle(mLifecycleOwner);
-        mPreferenceManager = new PreferenceManager(mContext);
-        mScreen = mPreferenceManager.createPreferenceScreen(mContext);
-
-        when(mFragment.getActivity()).thenReturn(mActivity);
-        when(mActivity.getApplicationContext()).thenReturn(mContext);
-        when(mFragment.getContext()).thenReturn(mContext);
-        when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
-        when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
-
-        ShadowEntityHeaderController.setUseMock(mHeaderController);
-        mDetailsHeaderController = new UsbDetailsHeaderController(mContext, mFragment, mUsbBackend);
-        mPreference = new LayoutPreference(mContext, R.layout.settings_entity_header);
-        mPreference.setKey(mDetailsHeaderController.getPreferenceKey());
-        mScreen.addPreference(mPreference);
-    }
-
-    @After
-    public void tearDown() {
-        ShadowEntityHeaderController.reset();
-    }
-
-    @Test
-    public void displayRefresh_charging_shouldSetHeader() {
-        mDetailsHeaderController.displayPreference(mScreen);
-        mDetailsHeaderController.refresh(true, UsbManager.FUNCTION_NONE, POWER_ROLE_SINK,
-                DATA_ROLE_DEVICE);
-        verify(mHeaderController).setLabel(mContext.getString(R.string.usb_pref));
-        verify(mHeaderController).setIcon(argThat((ArgumentMatcher<Drawable>) t -> {
-            DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
-            return true;
-        }));
-        verify(mHeaderController).done(mActivity, true);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
index 057b6cb..285c102 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
@@ -179,8 +179,8 @@
     }
 
     @Test
-    public void getAvailabilityStatus_disabledForGuestUser() {
-        doReturn(true).when(mUserManager).isGuestUser();
+    public void getAvailabilityStatus_disabledForNonAdminUser() {
+        doReturn(false).when(mUserManager).isAdminUser();
         assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER);
     }
 
